用VC++类实现快速排序(并输出过程)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&主函数&&&&&&&&&&&&&&&&&&&&&&
#include
#include
#include
#include "WangQi.h"
using namespace std;
#define MAX 100
void main(){
SeqList L;
int num;
cout<"请输入要排序的元素个数:"
cout<"请输入要排序的元素:"
cin>>L.r[i];
L.length=num;
//输出排序前的顺序表
L.output(&L,1,L.length,-1);
L.quicksort(&L,1,L.length);
L.output(&L,1,L.length,-2);
}
&&&&&&&&&&&&&&&&&&&含有类定义的头文件&&&&&&&&&&&&&&&&&&&&&&&&&
#include
using namespacestd;
#define MAX 100
class SeqList{
public:
int r[MAX+1];
int length;
void output(SeqList *L,int low, int high,int pivotloc){
int i;
if(pivotloc==-1||pivotloc==-2){
if(pivotloc==-1)
cout<"初始状态:{"< ;
else cout<"排序结果:{"< ;
for(i=low;i<=high;i++)
cout
cout<"}";
}else {
cout<"划分结果:{"< ;
for(i=low;i
cout<"}"
for(i=pivotloc+1;i<=high;i++)
cout
cout<"}";
}
cout
int partition(SeqList *L,int low,int high){
int pivotkey;
int temp1=low,temp2=high;
L->r[0]=L->r[low];
pivotkey=L->r[low];
while (low
--high;
L->r[low]=L->r[high];
while(low
++low;
L->r[high]=L->r[low];
}
L->r[low]=L->r[0];
output(L,temp1,temp2,low);
return low;
}
void quicksort(SeqList *L,int low,int high){
int pivotloc;
if(low
if(low
if(high>pivotloc+1)
quicksort(L,pivotloc+1,high);
}
};
VC++快速排序输出过 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)