相信学习c语言的人都应该狠狠熟悉冒泡排序,我就不做细细说明。
算法思想:就是把最大数冒到最后面,或把最小数冒到最后面,依次这样做。代码实现。
int BubbleSort(int *InputArr,int SizeArr)
{
int i = 0;
int j = 0;
int flag = 0; //定义标志位优化冒泡排序
if(NULL == InputArr)
{
return FALSE;
}
for(i = 0;i < SizeArr-1;i++)
{
for(j = 0;j < SizeArr-i-1;j++)
{
int temp = 0;
if(InputArr[j] > InputArr[j+1])
{
flag = 1; //当已经有序的时候就跳出循环,如果一次排序就已经有序则这样大大减小时间。
temp = InputArr[j];
InputArr[j] = InputArr[j+1];
InputArr[j+1] = temp;
}
}
if(0 == flag)
break;
}
return TURE;
}对了时间复杂是N*N即就是O(N*N)
原文:http://zhaoxiaohu.blog.51cto.com/10778115/1758399