C语言排序算法
2016-07-24 23:21
465 查看
C语言常用算法小结:
一、冒泡法
算法原理:
假设N个数从小到大排序,从第一个数开始,两两比较:即第一数和第二个比较,第二个数和第三个比较,以此类推;不满足从小到大的规则,则调换两个数的顺序。
经过第一轮比较,则最大的数排到最后了,且经历了 N -1 次比较。
第二轮也是从第一个数开始,两两比较,经历 N -2 次比较后,第二大的数排到了倒数第二的位置了。
总共比较N - 1 轮,则整个排序过程结束。
C语言算法实现:
void Bubble_Sort(int ArrIn[],int len)
{
int i,j,temp;
for(i = 0;i < len - 1;i++)
{
for(j = 0;j< len - i -1;j++)
{
if(ArrIn[j] > ArrIn[j+1])
{
temp = ArrIn[j];
ArrIn[j] = ArrIn[j+1];
ArrIn[j +1] = temp;
}
}
}
}
二、选择法
算法原理:
首先,以一个元素为基准,从一个方向开始扫描,比如从左到右扫描,以A[0] 为基准,接着从A[1] 到A
中找出最小的元素,将其与A[0] 交换。
然后,将A[1] 作为基准,重复上面的动作。一直进行到将A[N - 1] 作为基准,将其与A
比较,看是否交换,排序结束。
C语言算法实现:
void Select_Sort(int arr[],int Count)
{
int iTemp;
int iPos;
for(int i=0;i<Count-1;i++)
{
iTemp = arr[i];
iPos = i;
for(int j=i+1;j<Count;j++)
{
if(arr[j]<iTemp)
{
iTemp = arr[j];
iPos = j;
}
}
arr[iPos] = arr[i];
arr[i] = iTemp;
}
}
一、冒泡法
算法原理:
假设N个数从小到大排序,从第一个数开始,两两比较:即第一数和第二个比较,第二个数和第三个比较,以此类推;不满足从小到大的规则,则调换两个数的顺序。
经过第一轮比较,则最大的数排到最后了,且经历了 N -1 次比较。
第二轮也是从第一个数开始,两两比较,经历 N -2 次比较后,第二大的数排到了倒数第二的位置了。
总共比较N - 1 轮,则整个排序过程结束。
C语言算法实现:
void Bubble_Sort(int ArrIn[],int len)
{
int i,j,temp;
for(i = 0;i < len - 1;i++)
{
for(j = 0;j< len - i -1;j++)
{
if(ArrIn[j] > ArrIn[j+1])
{
temp = ArrIn[j];
ArrIn[j] = ArrIn[j+1];
ArrIn[j +1] = temp;
}
}
}
}
二、选择法
算法原理:
首先,以一个元素为基准,从一个方向开始扫描,比如从左到右扫描,以A[0] 为基准,接着从A[1] 到A
中找出最小的元素,将其与A[0] 交换。
然后,将A[1] 作为基准,重复上面的动作。一直进行到将A[N - 1] 作为基准,将其与A
比较,看是否交换,排序结束。
C语言算法实现:
void Select_Sort(int arr[],int Count)
{
int iTemp;
int iPos;
for(int i=0;i<Count-1;i++)
{
iTemp = arr[i];
iPos = i;
for(int j=i+1;j<Count;j++)
{
if(arr[j]<iTemp)
{
iTemp = arr[j];
iPos = j;
}
}
arr[iPos] = arr[i];
arr[i] = iTemp;
}
}
相关文章推荐
- 在命令行用 sort 进行排序
- 文件遍历排序函数
- 关于C#中排序函数的总结
- C#选择排序法实例分析
- C#插入法排序算法实例分析
- C#实现Datatable排序的方法
- MYSQL必知必会读书笔记第五章之排序检索数据
- SQLSERVER的排序问题结果不是想要的
- Ruby实现插入排序算法及进阶的二路插入排序代码示例
- Windows Powershell排序和分组管道结果
- C#通过IComparable实现ListT.sort()排序
- C#选择法排序实例分析
- SQL学习笔记四 聚合函数、排序方法
- C#对list列表进行随机排序的方法
- jQuery拖动元素并对元素进行重新排序
- 将MySQL查询结果按值排序的简要教程
- 深入解析桶排序算法及Node.js上JavaScript的代码实现
- 经典排序算法之冒泡排序(Bubble sort)代码
- 一根网线内的8根线哪4根是传输数据的,哪四根是防干扰的
- 在ASP.NET 2.0中操作数据之二十四:分页和排序报表数据