排序算法

扫码查看

冒泡排序

 1 void BubbleSort(int array[], int len) // O(n*n)
 2 {
 3     int i = 0;
 4     int j = 0;
 5     int exchange = 1; //表明数组是否已经排好序 已经排好序为0   1表示没有排好序
 6     for (i = 0; (i<len) && exchange; i++)
 7     {
 8         exchange = 0;//认为已经排序完毕
 9         for (j = len - 1; j>i; j--)
10         {
11             if (array[j] < array[j - 1])
12             {
13                 swap03(array, j, j - 1);
14                 exchange = 1;//
15             }
16         }
17     }
18 }

选择排序

 1 void SelectionSort(int array[], int len) // O(n*n)
 2 {
 3     int i = 0;
 4     int j = 0;
 5     int minIndex = -1;
 6
 7     for (i = 0; i<len; i++)
 8     {
 9         minIndex = i; //寻找最小元素的下标
10         for (j = i + 1; j<len; j++)
11         {
12             if (array[j] < array[minIndex]) //开始寻找最小元素的下标
13             {
14                 minIndex = j;
15             }
16         }
17         if (minIndex != i) {
18             swap01(array, i, minIndex);
19         }
20     }
21 }

插入排序

  

12-14 20:43
查看更多