这是在之前冒泡排序(2)的基础上增加了一个标价,例如对于{2.1.3.4.5.6.7.8.9}的这样的数组来排序时可以节省大量不必要的重复排序
#include<iostream>
using namespace std;
//定义一个交换函数
void swap(int &a,int &b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
void bubblesort(int *A,int length)
{
bool flag=true;
int i,j;
for(int i=0;i<length&&flag;++i)
{ flag=false;
for(int j=length-2;j>=i;--j)
{
if(A[j]>A[j+1])
{
swap(A[j],A[j+1]);
flag=true;
}
}
}
}
int main()
{ int a[9]={9,1,5,8,3,7,4,6,2};
bubblesort(a,9);
for(int i=0;i<9;++i)
cout<<a[i]<<" ";
cout<<endl;
system("pause");
return 0;
}