void InsertSort(Elemtype A[],int n){
int i,j;
for(i=2;i<=n;i++){
A[0]=A[i];//A[0]存放当前要插入的元素
for(j=i-1;A[0].key<A[j].key;j--)
A[j+1]=A[j];
A[j+1]=A[0];
}
}
void ShellSort(Elemtype A[],int n){
for(int dk=n/2;dk>=1;dk=dk/2)
for(int i=dk+1;i<=n;++i)
if(A[i].key<A[i-dk].key){
A[0]=A[i];
for(int j=i-dk;j>0&&A[0].key<A[j].key;j-=dk)
A[j+dk]=A[j];
A[j+dk]=A[0];
}
}
//kuai
int Partition(Elemtype A[],int low,int high){
Elemtype 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;
}
void QuickSort(Elemtype A[],int low,int high){
if(low<high){
int pivotpos = Partition (A,low,high);
QuickSort(A,low,pivotpos-1);
QuickSort(A,pivotpos+1,high);
}
}
Sort排序
最新推荐文章于 2022-03-24 19:34:51 发布