1冒泡排序
void bubblesort(elemtype a[],int n){
for(int i=0;i<n-1;i++){
flag=false;
for(j=n-1;j>i;j--)
{
if(A[j-1].key>A[j].key) //若爲逆序
{swap(A[j-1],A[j]);
flag=true;
}
if(flag==false) //本趟遍歷後沒有發生交換,說明表已經有序
return;
}
}
}
2快速排序
每趟有一個元素放在了最終位置上
void quicksort(int a[],int low,int high){
if(low<high){
int location=partion(a,low,high);
quicksort(a,low,location-1);
quicksort(a,lacation+1,high);
}
}
int partion(int a[],int low,int high){
int pivot=a[low];
while(low<high){
while(low<high && a[high]>=pivot) --high;
a[low]=a[high];
while(low<high && a[low]<=pivot) ++low;
a[high]=a[low];
}
a[low]=pivot;
return low;
}