冒泡排序

思想:

  把小的元素往前调,或者把大的元素往后调;比较的是两个相邻的元素,调换也是发送在这两个元素之间

code:

 1 #include <stdio.h>
 2 
 3 #define LEN 5
 4 
 5 int testData[LEN] = {10, 5, 2, 4, 7};
 6 
 7 void swap(int *pa, int *pb)
 8 {//交换
 9     int temp;
10     temp = *pa;
11     *pa = *pb;
12     *pb = temp;
13 }
14 
15 void bubble_sort(void)
16 {//从小到大排序,下标0的位置保存最小值
17     int i, j;
18     for(i=0; i<LEN-1; i++){
19         printf("%d, %d, %d, %d, %d
", testData[0], testData[1], testData[2], testData[3], testData[4]);
20         for(j=LEN-1; j>i; j--){//每次都从从最末端开始判断,到上次排好序的位置结束
21             if(testData[j] < testData[j-1]){//当前位置的数据小于前面的数据,需要交换
22                 swap(&testData[j], &testData[j-1]);
23             }    
24         }
25     }
26     printf("%d, %d, %d, %d, %d
", testData[0], testData[1], testData[2], testData[3], testData[4]);
27 }
28 
29 int main(int argc, char *argv[])
30 {
31     bubble_sort();
32     return 0;
33 }

截图:

  

原文地址:https://www.cnblogs.com/shanyu20/p/10932363.html