冒泡排序
基本思想:
比较相邻的逆序对,进行交换。每趟循环找出最大(最小)的数,放在最后一位(第一位)
代码:
#include <iostream>
using namespace std;
const int LN=10000;
int a[LN];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
//冒泡排序
for(int i=n-1;i>=1;i--){
int ok=true;
for(int j=0;j<i;j++)
if(a[j]>a[j+1]){
int temp=a[j];a[j]=a[j+1];a[j+1]=temp;
ok=false;
}
if(ok) break;//当没有逆序对,说明该数列都已经排好,不需要进行循环
}
//输出排序后
for(int i=0;i<n;i++) cout<<a[i]<<" ";
return 0;
}