哀--没好好学习的后果三、实验内容
通过一趟将待排记录分割成独立的两个部分,其中一部分记录的关键字均比另一部分记录的关键字小。再对两个部分分别进行快速排序。四、实验步骤
1.输入待排序的记录,并选择第一个记录作为pivotkey记录
2.从high指向的记录开始,向前找到第一个关键字的值小于Pivotkey的记录,将其放到low指向的位置,low+1
3.从low指向的记录开始,向后找到第一个关键字的值大于Pivotkey的记录,将其放到high指向的位置,high-1
4.重复2,3,直到low=high,将枢轴记录放在low(high)指向的位置
5.重复1,2,3,4,直到整个记录有序为止
通过一趟将待排记录分割成独立的两个部分,其中一部分记录的关键字均比另一部分记录的关键字小。再对两个部分分别进行快速排序。四、实验步骤
1.输入待排序的记录,并选择第一个记录作为pivotkey记录
2.从high指向的记录开始,向前找到第一个关键字的值小于Pivotkey的记录,将其放到low指向的位置,low+1
3.从low指向的记录开始,向后找到第一个关键字的值大于Pivotkey的记录,将其放到high指向的位置,high-1
4.重复2,3,直到low=high,将枢轴记录放在low(high)指向的位置
5.重复1,2,3,4,直到整个记录有序为止
参考<<数据结构>>
void MySwapInt(int &a,int &b)
{
int t;
t=a;
a=b;
b=t;
}int Partition(int a[],int p,int r)
{
int i=p,j=r+1;
int x=a[p];
while(true)
{
while(a[++i]<x);
while(a[--j]>x);
if(i>-j)
break;
MySwapInt(a[i],a[j]); }
a[p]=a[j];
a[j]=x;
return j;}
void QuickSort(int a[],int p,int r)
{ if(p<r)
{ int q=Partition(a,p,r);
QuickSort(a,p,q-1);
QuickSort(a,q+1,r);
}
}