| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 698 人关注过本帖
标题:关于快速排序的问题,帮忙呀!
只看楼主 加入收藏
stanforder
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-12-7
收藏
 问题点数:0 回复次数:4 
关于快速排序的问题,帮忙呀!
这是我写的一个程序,为什么总是死循环呢? 谢谢大家了!

void swap(int &a,int &b)      /*exchange*/
{
  int c;
  c=a;a=b;b=c;
}

void quickSort(int a[],int left,int right)
{
  int i,j;
  i=left+1;
  j=right;
  if(left>right)
      return;
  while(i<=j)
  {
       while(a[j]>a[left])
     j--;
       while(a[i]<=a[left])
         i++;
       swap(a[i],a[j]);
      
  }
  swap(a[left],a[i]);
   
  quickSort(a,left,i-1);
  quickSort(a,i+1,right);
}
搜索更多相关主题的帖子: exchange return 
2008-12-07 15:44
jdh99
Rank: 2
来 自:南师大
等 级:论坛游民
威 望:1
帖 子:59
专家分:15
注 册:2008-11-7
收藏
得分:0 
修改后的代码如下,LZ参考下吧
#include<stdio.h>

void swap(int *a,int *b)      /*exchange*/
{
  int c;
  c = *a;
  *a = *b;
  *b = c;
}

void quickSort(int a[],int left,int right)
{
  int i,j;
  i=left;//--第一个数也参与调换
  j=right;
  if(left>right)
      return;
  while(i<=j)
  {
       while(a[j]>a[left] && (j > left))
       {
            j--;
       }
       while(a[i]<a[left] && (i < right))
       {
            i++;
       }
       if(i <= j)
       {
           swap(a + i,a + j);//--参数为地址
           i++;
           j--;
       }
  }
  
    if(j>left)
    {
        quickSort(a,left,j);
    }
    if(i<right)
    {
        quickSort(a,i,right);
    }
}

//测试
main()
{
    int a[]={0,2,7,87,35,80,4,5};
    int *p;
    quickSort(a,0,7);
    for(p = a;p < a + 8;p++)
    {
        printf("%d\t",*p);
    }
    getchar();
}
输入输出:
0       2       4       5       7       35      80      87
Press any key to continue

作鲲鹏,遨游于天地沧海
2008-12-07 17:11
stanforder
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-12-7
收藏
得分:0 
回复 第2楼 jdh99 的帖子
太感谢了!!!痛哭流涕。。。。
发奋学C!!!!
2008-12-08 22:55
s水
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-12-7
收藏
得分:0 
保存现在还不懂。发奋
2008-12-10 12:51
cjl730
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-10-28
收藏
得分:0 
请问一下
quickSort()函数里 return 有什么用?
2008-12-10 13:14
快速回复:关于快速排序的问题,帮忙呀!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017503 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved