冒泡排序(优化)
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
int array[] = {3,7,5,2,9,4,1,8,6};
int count = sizeof(array) / sizeof(array[0]);
int flag = 0;//0无序 1 有序
for (int i = 0; i < count - 1 &&flag == 0 ; i ++) {
flag = 1; // 假定有序
for (int j = 0; j < count - i - 1; j ++) {
if (array[j] > array[j + 1]) {
int tem = array[j];
array[j] = array[j + 1];
array[j + 1] = tem;
flag = 0; //确定无序
}
}
}
for (int i = 0; i < count ; i ++) {
printf("[%2d] : %d\n", i, array[i]);
}