冒泡排序

练习了一下冒泡排序

 1 //冒泡排序
 2 #include <stdio.h>
 3 void bubbleSort01(int *array, int length)
 4 {
 5     int i, j, temp;
 6     for(i = length - 1; i > 0 ; i--)
 7     {
 8         for(j = 0; j < i; j++)
 9         {
10             if(array[j] > array[j+1])
11             {
12                 temp = array[j];
13                 array[j] = array[j+1];
14                 array[j+1] = temp;
15             }
16         }
17     }
18 }
19 
20 void bubbleSort02(int *array, int length)
21 {
22     int i, temp, swapped;
23     
24     do
25     {
26         swapped = 0;
27         for(i = 0; i < length -1; i++)
28         {
29             if(array[i] > array[i+1])
30             {
31                 temp = array[i];
32                 array[i] = array[i+1];
33                 array[i+1] = temp;
34                 swapped = 1;
35             }
36         }
37     }while(swapped);
38 }
39 
40 int main(int argc, char *argv[])
41 {
42     int i,  arrayCount;
43     printf("请输入数组元素个数:");
44     scanf("%d", &arrayCount);
45     int array[arrayCount];
46 
47     for(i = 0; i < arrayCount; i++)
48     {
49         printf("
请输入数组元素值,array[%d] = ", i);
50         scanf("%d", &array[i]);
51     }
52     printf("
");
53 
54     bubbleSort01(array, arrayCount);
55 
56     for(i = 0; i < arrayCount; i++)
57     {
58         printf("%d ", array[i]);
59     }
60     printf("
");
61 
62     return 0;
63 }

bubbleSort01是我自己写的,后来上网一看别人写的算法是bubbleSort02,发现原来多了一个标志量,这样在数组排好序的时候就无需再遍历。

终于明白,“喜欢”是一种莫大的能量!
原文地址:https://www.cnblogs.com/tml839720759/p/3372554.html