冒泡排序---经典排序算法
冒泡排序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;
}