常用几种排序算法-冒泡排序(Bubble sort)

1.冒泡排序简介

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

2.冒泡排序步骤

要排序的数组

2, 7, 11, 15

第一趟:11 15 7 2 | 11 7 15 2 | 11 7 2 15 ### N-1 3次比较

 第二趟:7 11 2 15 | 7 2 11 15 |               ### N-2 2次比较

 第三趟:2 7|                                          ### N-3 1次比较

  总结:需要进行N-1趟排序。第i趟排序要进行N-i次关键字的比较(1≤i≤n-1),

从小到大的排序示例:

#define N 4
int
main() {   int arrarCount[4] = {1,7,5,9}; // 冒泡排序
   // 外层N-1趟 for (int i = 0; i < N-1; i++) {
     // 内层N-i次比较 i从0开始的所以就是第i+1趟
for (int j = 0; j < N-(i+1); j++) { if (arrarCount[j] > arrarCount[j + 1]) { int temp = arrarCount[j]; arrarCount[j] = arrarCount[j+1]; arrarCount[j+1] = temp; } } } }