Appearance
Bubble Sort
算法简述 : 遍历比较两个相邻的数字, 按照大小交换

c
#include <stdio.h>
int main() {
int arr[10] = {2,4,6,8,1,3,5,7,9,0};
int len = sizeof(arr)/sizeof(arr[0]);
// bubble sort
for (int i = 1; i < len; i++) {
// int flag = 0;
for (int j = 0; j < len - i; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
// flag = 1;
}
}
// if (0 == flag) break;
}
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}- 上面注释掉的 flag 是可选的冒泡排序的改进,当某次遍历不存在交换的数据的时候,说明数组已经是有序的了,所以可以直接中断后一轮的遍历