标题:向大家展示一下:快速排序算法
只看楼主
梦幻乐园
Rank: 2
等 级:论坛游民
帖 子:62
专家分:87
注 册:2012-10-25
结帖率:100%
已结贴  问题点数:10 回复次数:7 
向大家展示一下:快速排序算法
void qusort(int s[],int start,int end)
{
   int i,j;
   i=start;
   j=end;
   s[0]=s[start];
   while(i<j)
   {
      while(i<j&&s[0]<s[j])
         j--;
      if(i<j)
      {
        s[i]=s[j];
        i++;   
      }
      while(i<j&&s[i]<=s[0])
         i++;
      if(i<j)
      {
         s[j]=s[i];
         j--;
      }
   }   
   s[i]=s[0];
   if(start<i)
      qusort(s,start,j-1);
   if(i<end)
      qusort(s,j+1,end);
}
搜索更多相关主题的帖子: 快速 展示 start 
2013-03-03 15:36
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:1 
赞一下

我行我乐
我的博客:
http://blog.yuccn. net
2013-03-03 15:41
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
得分:1 
学习啦
2013-03-03 20:47
郭俊森
Rank: 1
等 级:新手上路
帖 子:27
专家分:3
注 册:2013-2-28
得分:1 
怎么运行不了
2013-03-03 21:33
模糊
Rank: 2
等 级:论坛游民
帖 子:56
专家分:53
注 册:2013-2-26
得分:1 
2013-03-03 22:24
gar986155051
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2013-3-2
得分:1 
#include "stdio.h"
void qusort(int s[],int start,int end)
{
   int i,j;
   i=start;
   j=end;
   s[0]=s[start];
   while(i<j)
   {
      while(i<j&&s[0]<s[j])
         j--;
      if(i<j)
      {
        s[i]=s[j];
        i++;   
      }
      while(i<j&&s[i]<=s[0])
         i++;
      if(i<j)
      {
         s[j]=s[i];
         j--;
      }
   }   
   s[i]=s[0];
   if(start<i)
      qusort(s,start,j-1);
   if(i<end)
      qusort(s,j+1,end);
}
void main()
{int a[10],i;
 for(i=0;i<10;i++)
   scanf("%d",&a[i]);
 qusort(a,0,9);
 for(i=0;i<10;i++)
   printf("%d  ",a[i]);
}


怎么运行结果不对啊!
2013-03-04 00:26
zhouruheng
Rank: 2
等 级:论坛游民
帖 子:5
专家分:14
注 册:2013-1-28
得分:1 
以下是引用gar986155051在2013-3-4 00:26:34的发言:

#include "stdio.h"
void qusort(int s[],int start,int end)
{
   int i,j;
   i=start;
   j=end;
   s[0]=s[start];
   while(i
void QuickSort(int s[], int low, int high)
{
    int key, i, j;
    i = low;   
    j = high;   
    key = s[i];
     
    while(i < j)   
    {        
        while(i<j && s[j]>=key)   
            j--;   
        if(i<j)   
            s[i] = s[j];   
        while(i<j && s[i]<=key)
            i++;
        if(i<j)   
             s[j] = s[i];        
    }   
    s[i] = key;//i==j即key值所应该放的位置
    if(i-1 > low)    QuickSort(s, low, i-1);//左边至少2个元素
    if(i+1 < high)   QuickSort(s, i+1, high);//右边至少2个元素

    return ;
}
2013-03-04 16:02
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
得分:1 
好方法
2013-03-04 17:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-399585-1-1.html




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

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