请各位专家帮我看一个快速排序(VC6环境下),不知道错在哪儿?谢谢!

liliah 2003-07-02 10:43:05
#include "stdafx.h"
#include "stdio.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
char a[]="gfedahbc";
void q_sort(char *,int,int);
q_sort(a,0,7);
printf("%s",a);
return 0;
}
void q_sort(char e[],int low,int high)
{
int i,j;
char t;

if (low<high)
{
i=low;j=high;t=e[low];
while(i<j){
while (i<j && e[j]>t) j--;
if (i<j) e[i++]=e[j];
while (i<j && e[j]<=t) i--;
if (i<j) e[j++]=e[i];
}
e[i] = t;
q_sort(e,low,i-1);/*递归 对左子序列作划分*/
q_sort(e,i+1,high);/*递归 对右子序列作划分*/

}
}


...全文
57 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
maptrix 2003-08-07
  • 打赏
  • 举报
回复
template <class _T>
void Sort(_T *Low, _T *Up)
{
_T *i, *j;
_T Temp;
if(Low >= Up)
return;

Temp = *Low;
i = Low;
j = Up;

while(i < j)
{
while(Temp < *j && i < j)
j--;
if(i < j)
{
*i = *j;
do
{
i++;
}while(Temp > *i && i < j);

if(i < j)
{
*j = *i;
j--;
}
}
}

*i = Temp;
Sort(Low, i - 1);
Sort(i + 1, Up);
}
xenix 2003-07-20
  • 打赏
  • 举报
回复
附:现在有改进的三段式qsort,更快
xenix 2003-07-20
  • 打赏
  • 举报
回复
要快的话不要用递归,直接stack+goto
看看 VC或BC附带的qsort 函数源码,在待排数据<8时用 shell sort
(C Runtime source )
nicememory 2003-07-09
  • 打赏
  • 举报
回复
糊涂了...
有几种快速排序?
楼上的明示

至于它快不快,可以去看书
njuhuangmy 2003-07-08
  • 打赏
  • 举报
回复
hehe 疑问

是 快速 吗 ??
ZhangYv 2003-07-08
  • 打赏
  • 举报
回复
void Swap(int &i, int &j)
{
int temp;
temp = i;
i = j;
j = temp;
}

int Partition(int data[], int p, int r, int x)
{
int i, j;
i = p - 1;
j = r + 1;
while (1) {
do j--; while (data[j] > x);
do i++; while (data[i] < x);
if (i < j)
Swap(data[i], data[j]);
else
return j;
}
}

void QuickSort(int data[], int p, int r)
{
int q;
if (p < r){
q = Partition(data, p, r, data[p]);
QuickSort(data, p, q);
QuickSort(data, q+1, r);
}
}
neverdown1983 2003-07-03
  • 打赏
  • 举报
回复
哪个快速排序???讲清楚点
liliah 2003-07-03
  • 打赏
  • 举报
回复
up
vldb 2003-07-03
  • 打赏
  • 举报
回复
while (i<j && e[j]<=t) i--;
if (i<j) e[j++]=e[i];

改成:

while(i<j && e[i]<=t) i++;
if(i<j) e[j--]=e[i];

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧