a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 用VC++類實現快速排序(并輸出過程)

用VC++類實現快速排序(并輸出過程)

作者: 時間:2016-12-01 來源:網絡 收藏


&&&&&&&&&&&&&&&&&&&&&&&&&&&&主函數&&&&&&&&&&&&&&&&&&&&&&
#include
#include
#include
#include "WangQi.h"
using namespace std;
#define MAX 100
void main(){
SeqList L;
int num;
cout<<"請輸入要排序的元素個數:"<cin>>num;
cout<<"請輸入要排序的元素:"<for(int i=1;i<=num;i++)
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;

本文引用地址:http://www.j9360.com/article/201612/324137.htm

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<r[i]<< ;
cout<<"}";
}else {
cout<<"劃分結果:{"<< ;
for(i=low;i cout<r[i]<< ;
cout<<"}"<r[pivotloc]<<"{";
for(i=pivotloc+1;i<=high;i++)
cout<r[i]<< ;
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 while (lowr[high]>=pivotkey)
--high;
L->r[low]=L->r[high];
while(lowr[low]<=pivotkey)
++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 pivotloc=partition(L,low,high);
if(low quicksort(L,low,pivotloc-1);
if(high>pivotloc+1)
quicksort(L,pivotloc+1,high);
}
};



評論


相關推薦

技術專區

關閉