冒泡排序个人理解就是通过首先选取数组中的第一个数,从第一个数开始依次两两比较数据大小,如果数据按有序排列则不变反之则换位处理。
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9};
int i,j,cont,n;
int right = sizeof(arr)/sizeof(arr[0])-1;
int left = 0;
while (left<right)
{
int left = 0;
int flag = 1;
for (i=1;i<=right;i++)
{
if (arr[left]>arr[i])
{
cont = arr[i];
arr[i] = arr[left];
arr[left] = cont;
left++;
flag = 0;
}
else
{
left++;
}
}
if (flag == 1)
{
break;
}
else
{
right--;
}
}
for (n=0;n<=8;n++)
{
printf("%d ",arr[n]);
}
return 0;
}
总结
flag的用法可以提升代码运行效率,在整形数组本身有序的情况下可减少代码运行次数,值得仔细思考。