用一个标记flag标识此趟遍历是否有元素交换,如果没有则说明已经排好序了
1 void bubble_sort(int array[], int n)
2 {
3 int i;
4 int j;
5 for (i = n - 1; i > 0; --i)
6 {
7 int flag = 0;
8 for (j = 0; j < i; ++j)
9 {
10 if (array[j] > array[j + 1])
11 {
12 int tmp = array[j];
13 array[j] = array[j + 1];
14 array[j + 1] = tmp;
15 flag = 1;
16 }
17 }
18
19 if (flag == 0)
20 break;
21 }
22 }
23