文档介绍:#include viostream> using namespace std;
struct RecordNode
{
int key; 〃排序码字段
int value; 〃记录的其他字段
};
struct SortObjvv""
OutputData(pvector);
}
〃快速排序:
void quitsort(SortObject * pvector,int s,int e,int &n,int &m) {
int l=s,r=e;
RecordNode x=pvector->record[s];
if(l>r) return;
while(lvr)
{
while(l<r&& pvector->record[r].key>=)
{
r--;
n++;
} pvector->record[l]=pvector->record[r];
while(lvr&& pvector->record[l].keyv=)
{
l++;
n++;
} pvector->record[r]=pvector->record[l];
m++;
}
pvector->record[l].key=;
quitsort(pvector,s,r-l,n,m); quitsort(pvector,r+l,e,n,m);
}
void quitsort_prin(SortObject * pvector,int &n,int &m)
{
n=0,m=0;
quitsort(pvector,0,pvector->n-1,n,m);
coutvv”快速排序: ";
coutvv"排序码比较次数:"vvnvv"元素移动次数:"vvmvv"" OutputData(pvector);
} void Showout(int nn[],int mm[])
{
SortObject *pvector[4];
int i,n;
for(i=0;iv4;++i)
pvector[i]=new SortObject;
coutvv"输入排序表的长度:";
cin>>n;
for(i=0;i<4;++i)
{
pvector[i]->n=n; pvector[i]->record=new RecordNode[n];
}
InputData(pvector); bubbleSort(pvector[O],nn[O],mm[O]);
InsSort(pvector[1],nn[1],mm[1]);
SelectSort(pvector[2],nn[2],mm[2]);
quitsort_prin(pvector[3],nn[3],mm[3]);
〃测试程序
void main()
{
j . _ff ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* ^1* 11 T T
coutvv"*********