快速排序c++程序

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:16:11
要求使用以下这个算法
void quicksort(ElemType R[],int left,int right) {
int i=left,j=right;ElemType temp=R[i];
while(i<j) {
while ((R[j]>temp)&&(j>i)) j=j-1;
if (j>i) { R[i]=R[j];i=i+1; }
while ((R[i]<=temp)&&(j>i)) i=i+1;
if (i<j) {R[j]=R[i]; j=j-1; }
}
R[i]=temp;
if (left<i-1) quicksort(R,left,i-1);
if (i+1<right quicksort(R,i+1,right);
}

#include <iostream>
using namespace std;

void quicksort(int R[],int left,int right) {
int i=left,j=right;int temp=R[i];
while(i<j) {
while ((R[j]>temp)&&(j>i)) j=j-1;
if (j>i) { R[i]=R[j];i=i+1; }
while ((R[i]<=temp)&&(j>i)) i=i+1;
if (i<j) {R[j]=R[i]; j=j-1; }
}
R[i]=temp;
if (left<i-1) quicksort(R,left,i-1);
if (i+1<right) quicksort(R,i+1,right);
}

int main()
{
int a[20];
for(int i=0; i<20; i++)
{
cin>>a[i];
}
quicksort(a,0,19);
for(i=0; i<20; i++)
{
cout<<a[i]<<endl;
}
return 0;
}

你的算法很好用啊,你的倒数第二行if丢了一个右括号

快速排序的思想参见http://baike.baidu.com/view/19016.html?tp=1_11

#include"stdio.h"
typedef int ElemType;
void q