在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 }