改进的冒泡,稳定排序
int a[]={16,7,3,20,17,8};
int size=6;
for(int i=0;i<size;i++)
{
int k=i;
for(int j=i;j<size;j++)
{
if(a[k]>a[j])
k=j;
}
if(k!=i)
swap(a[k],a[i]);
}
快速,不稳定排序
int Partition(int* a,int l,int h)
{
int temp=a[l];
while(l<h)
{
while(l<h&&a[h]>temp)
h--;
if(l<h)
a[l++]=a[h];
while(l<h&&a[l]<temp)
l++;
if(l<h)
a[h--]=a[l];
}
a[l]=temp;
return l;
}
void QuickSort(int* a,int l,int h)
{
if(l>=h) return;
int m=Partition(a,l,h);
QuickSort(a,l,m-1);
QuickSort(a,m+1,h);
}
int a[]={16,7,3,20,17,8};
int size=6;
QuickSort(a,0,size-1);