您的位置:首页 > 其它

冒泡排序

2016-04-24 14:20 211 查看
冒泡排序: 将一个整形数组中的元素按照从小到大的顺序排列
具体方法:数组元素先进行一次依次循环比较,找出最大的元素,放在数组最右边, 嵌套循环时要注意循环次数的控制, 进行n-1趟排序后,就ok。
下面是代码实现:
#include<stdio.h>
#include<stdlib.h>
int * bubble_sort(int arr[],int sz)

{
int i = 0;
int j = 0;
int flag = 1;//这里声明一个标志,为了下面内层循环中减少数组元素比较的次数
//假设标志为1时,数组元素为有序的
int tmp = 0;
for(i = 0;i<sz-1;i++)
{
for(j = 0;j<sz-1-i;j++)
{
if(arr[j]>arr[j+1])
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
flag = 0;
}
}
if(flag==1)
return arr;
}
return arr;
}

int main()
{
int arr[] = {5,0,1,2,3,4,9,7,6,8};
int i = 0;
int *ret = bubble_sort(arr,sizeof(arr)/sizeof(arr[0]));
for(i = 0;i<10;i++)
{
printf("%d ",arr[i]);
}
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  关于 冒泡排序