冒泡排序法的基本思想是:
对待排序记录关键字从后往前(逆序)进行多遍扫描,当发现相邻两个关键字的次序与排序要求的规则不符时,就将这两个记录进行交换。这样,关键字较小的记录将逐渐从后面向前面移动,就象气泡在水中向上浮一样,所以该算法也称为气泡排序法。
# include <iostream>
using namespace std;
void Sort(int a[],int n){
int i,j,t,flag = 0;
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(a[i]>a[j]){
t = a[i];
a[i] = a[j];
a[j] = t;
flag = 1;
}
}
}
}
//优化的冒泡排序
void Sort1(int a[],int n){
int i,j,t,flag = 0;
for(i=0;i<n-1;i++){//这里n-1的原因,6个数走5遍
for(j=n-1;j>0;j--){
if(a[j-1]>a[j]){
t = a[j-1];
a[j-1] = a[j];
a[j] = t;
flag = 1;
}
}
if(flag==0){
break;
}else{
flag = 0;
}
}
}
//升序
int main(){
int a[]={1,100,87,65,23,55,63,55,19,3};
Sort1(a,10);
for(int i=0;i<10;i++){
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}