數據結構與算法之冒泡排序(C++)

 在c語言裏面算法和數據結構是非常重要的,同樣在C++中也是不可缺少的一部分,算法的思想有很大的相似之處,如果你對C語言的數據結構與算法非常熟悉的話,那麼對於C++的數據結構也是非常好理解的。首先我們來講一講最基本的排序方式--冒泡排序法

冒泡排序

對於冒泡排序法,大家學過C語言的應該都不會陌生,他的中心思想也比較好理解,用C++來做的話,原理是一樣。

比如我們有n個無序的數,需要對他進行排序,那麼我們就需要對這些數掃描n-1次

當我們掃描第一次的時候,就會從左到右依次比較相鄰兩個數之間的大小,如果前面的數比後面的數大則進行交換,反之不交換。

如果是n個數,掃描第一次時,那麼他們的比較次數爲n-1次,

掃描第二次時,他們的比較次數是n-2次 

依次類推,掃描第i次時,比較次數爲n-i-1次

接下來用程序更好的理解一下

1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 void BubbleSort(int list[] , int n);
 6 
 7 int main()
 8 {
 9     int a[] = {2,4,6,8,0,1,3,5,7,9};    
10     BubbleSort(a,10);
11     for(int k=0; k<10; k++)
12         cout << a[k] <<endl;
13 
14     return 0;
15 }
16 
17 void BubbleSort(int list[] , int n)
18 {
19     for(int i=0; i<n-1; i++)
20     {
21         for(int j=0; j<n-i-1; j++)
22         {
23             if(list[j]>list[j+1])       
24                 swap(list[j],list[j+1]);
25         }
26     
27     }
28 
29 }                                    

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章