- 交换排序—冒泡排序(Bubble Sort)
基本思想:
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
算法的实现:
#include<iostream>
#include<string>
using namespace std;
void print(int a[],int n,int i){
for(int j=0;j<n;j++){
cout << a[j] << " ";
}
cout << endl;
}
void bubbleSort(int a[],int n){
for(int i=0;i<n;i++){
for(int j=0;j<n-i-1;j++){
if(a[j] >a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
print(a,n,i);
}
}
int main(){
int a[8]={9,7,6,5,4,3,2,1,};
bubbleSort(a,8);
}
运行结果:
7 6 5 4 3 2 1 9
6 5 4 3 2 1 7 9
5 4 3 2 1 6 7 9
4 3 2 1 5 6 7 9
3 2 1 4 5 6 7 9
2 1 3 4 5 6 7 9
1 2 3 4 5 6 7 9
1 2 3 4 5 6 7 9