排序算法 之 冒泡排序


 1 #include <iostream>
 2 using namespace std;
 3 void bubbleSort(int data[],int length)
 4 {
 5     if (data == nullptr || length <= 0)
 6     {
 7         return;
 8     }
 9     for (int i = 0 ; i < length ; i++)
10     {
11         for (int j = length-1 ; j > i ; j --)
12         {
13             if (data[j] < data[j-1])
14             {
15                 swap(data[j],data[j-1]);
16             }
17         }
18         printf("第%d次排序后的結果 : " ,i+1);
19         for (int i =0 ;i < length ;++i)
20         {
21             printf("%d  ",data[i]);
22         }
23         printf("\n");
24     }
25 }
26 int main()
27 {
28     int data[] = {2,5,1,4,0,-3,59,-78,62,3};
29     bubbleSort(data,sizeof(data)/sizeof(int));
30     printf("\n\n");
31     for (int i =0 ;i < sizeof(data)/sizeof(int) ;++i)
32     {
33         printf("%d ",data[i]);
34     }
35     printf("\n");
36     return 0;
37 }
View Code
 1 #include <iostream>
 2 using namespace std;
 3 void bubbleSort(int data[],int length)
 4 {
 5     if (data == nullptr || length <= 0)
 6     {
 7         return;
 8     }
 9     for (int i = 0 ; i < length ; i++)
10     {
11         for (int j = length-1 ; j > i ; j --)
12         {
13             if (data[j] < data[j-1])
14             {
15                 swap(data[j],data[j-1]);
16             }
17         }
18         printf("第%d次排序后的結果 : " ,i+1);
19         for (int i =0 ;i < length ;++i)
20         {
21             printf("%d  ",data[i]);
22         }
23         printf("\n");
24     }
25 }
26 int main()
27 {
28     int data[] = {2,5,1,4,0,-3,59,-78,62,3};
29     bubbleSort(data,sizeof(data)/sizeof(int));
30     printf("\n\n");
31     for (int i =0 ;i < sizeof(data)/sizeof(int) ;++i)
32     {
33         printf("%d ",data[i]);
34     }
35     printf("\n");
36     return 0;
37 }
///每次排序找到最小的放到前面,與選擇排序相比,冒泡排序多次打亂數組內的數據,也就是將數組中的值多次修改

輸出結果為:

第1次排序后的結果 : -78  2  5  1  4  0  -3  59  3  62
第2次排序后的結果 : -78  -3  2  5  1  4  0  3  59  62
第3次排序后的結果 : -78  -3  0  2  5  1  4  3  59  62
第4次排序后的結果 : -78  -3  0  1  2  5  3  4  59  62
第5次排序后的結果 : -78  -3  0  1  2  3  5  4  59  62
第6次排序后的結果 : -78  -3  0  1  2  3  4  5  59  62
第7次排序后的結果 : -78  -3  0  1  2  3  4  5  59  62
第8次排序后的結果 : -78  -3  0  1  2  3  4  5  59  62
第9次排序后的結果 : -78  -3  0  1  2  3  4  5  59  62
第10次排序后的結果 : -78  -3  0  1  2  3  4  5  59  62

-78 -3 0 1 2 3 4 5 59 62
請按任意鍵繼續. . .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM