冒泡排序---经典排序算法

冒泡排序Bubble Sort

原理:从前往后两两比较,大值后移,直到比较到最后。

 举例说明:

现有数组int a[]={ 7, 5, 2, 8, 4} 

 

冒泡排序---经典排序算法

 

经过总结,N个元素要经过N-1趟排序,每趟排序比较次数与 趟数的和为N,第i趟排序的比较次数为(N-i)

所以可以用双重循环进行实现此经典算法,外层循环用来控制趟数,内层循环用来控制每一趟比较的次数。

冒泡排序总的平均时间复杂度为O(n2)。

代码实现:

#include <iostream>

using namespace std;
void bubblesort(int a[],int length){
    for(int i=0; i<length-1;i++){ //外层循环控制排序的趟数
        for(int j=0;j<length-i;j++){//内层循环控制每一趟排序比较的次数
            if(a[j]>a[j+1]){
                swap(a[j],a[j+1]);
            }
        }
    }
}
int main()
{
    int a[]={7, 5, 2, 8, 4};
    bubblesort(a,5);
    for(int i=0;i<5;i++){
        cout << a[i]<<" ";
    }
    return 0;
}