数据结构与算法之冒泡排序(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 }                                    

 

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