排序

 1 /*
 2 排序思想:
 3     选择排序是从未排序的数据中选出最小的一个元素顺序放在已经排好序的数
 4 列最后。
 5 实现方法:
 6     将前面第i个数分别与后面的n - i个数比较,大的放后面,小的放前面,这样
 7 一轮比较下来,第i个数就是第i~n个数中最小的数。
 8 
 9 */
10 void select_sort(int a[], int len)
11 {
12     int i, j, temp;
13 
14     for (i = 0; i < len - 1; i++)
15     {
16         for (j = i + 1; j < len; j++)
17         {
18             if (a[i] > a[j])
19             {
20                 temp = a[i];
21                 a[i] = a[j];
22                 a[j] = temp;
23             }
24         }
25     }
26 }
27 /*
28 冒泡排序
29 排序思想:
30     将相邻的两个数进行比较,小的放在前头,大的放在后面。
31 实现方法:
32     依次将第i个元素开始与第i+1个元素比较大小,互换,每一轮比较都可以将未
33 排序中的数的最大值冒泡在最后面。
34 */
35 void bubble_sort(int a[], int len)
36 {
37     int i, j, temp;
38     int change;
39 
40     for (i = 0; i < len - 1; i++)
41     {
42         change = 0;
43         for (j = 0; j < len - 1 - i; j++)
44         {
45             if (a[j] > a[j + 1])
46             {
47                 temp = a[j];
48                 a[j] = a[j + 1];
49                 a[j + 1] = temp;
50                 change = 1;
51             }
52         }
53         if (!change)
54             break;
55     }
56 }
57 
58 /*
59 直接插入排序
60 排序思想:
61     把一个元素插入到已经排好序的有序序列中去,使整个序列在插入了该记录
62 后仍然有序。
63 实现方法:
64     用第i(i>0)个元素与它前面的元素依次比较大小,这样每轮比较都能使第i及
65 以前的元素成为有序序列。
66 */
67 
68 void bubble_sort(int a[], int len) 
69 {
70     int i, j, temp;
71 
72     for (i = 1; i < len; i++)
73     {
74         for (j = 0; j < i; j++)
75         {
76             if (a[i] < a[j])
77             {
78                 temp = a[i];
79                 a[i] = a[j];
80                 a[j] = temp;
81             }
82         }
83     }
84 }               
85     
原文地址:https://www.cnblogs.com/cmembd/p/3198528.html