冒泡排序法(Bubblesort)
重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来,每一轮的排序,比较大的元素会浮在后面
void bubblesort(int a[], int m)
2 {
3 int i,j;
4 int tmp;
6 for(i = 0; i < m; i++) //外层循环控制循环次数
7 {
8 for(j = 0; j < m-1-i; j++) //内层循环控制每次循环里比较的次数。
9 {
10 if(a[j] > a[j+1])
11 {
12 tmp = a[j];
13 a[j] = a[j+1];
14 a[j+1] = tmp;
16 }
17 }
选择排序法(selection sort)
选择排序就是不断地从未排序的元素中选择最大(或最小)的元素放入已排好序的元素集合中,直到未排序中仅剩一个元素为止。
void selectionsort(int a[],int m)
2 {
3 int i,j;
4 int k;
5 int tmp;
6
7 for(i = 0; i < m-1; i++)//控制循环次数,n个数需要n-1次循环
8 {
9 k = i;
10 for(j = i+1; j < m ; j++)
11 {
12 if(a[j] < a[k])
13 k = j;
14 }
15 //i不等于k是就证明a[i]不是最小的,
16 //i等于k时证明a[i]就是本轮比较过程中最小的值
17 if(i != k)
18 {
19 tmp = a[i];
20 a[i] = a[k];
21 a[k] = tmp;
22 }
23 }
24 }