冒泡排序

练习了一下冒泡排序

 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("\n请输入数组元素值,array[%d] = ", i);
50         scanf("%d", &array[i]);
51     }
52     printf("\n");
53 
54     bubbleSort01(array, arrayCount);
55 
56     for(i = 0; i < arrayCount; i++)
57     {
58         printf("%d ", array[i]);
59     }
60     printf("\n");
61 
62     return 0;
63 }

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

posted @ 2013-10-16 17:00  mic_yx  阅读(161)  评论(0)    收藏  举报