| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1347 人关注过本帖
标题:这是个快速排序代码 编译后什么都没有输出 那个环节出了问题了求大佬们指教 ...
只看楼主 加入收藏
风流泰
Rank: 1
等 级:新手上路
帖 子:78
专家分:0
注 册:2018-9-29
结帖率:87.88%
收藏
已结贴  问题点数:20 回复次数:4 
这是个快速排序代码 编译后什么都没有输出 那个环节出了问题了求大佬们指教 感谢
#include<stdio.h>
int a[]={11,13,3,4,6,7,1,9,2};
void quicksort(int left,int right)
{
    int t;
    int i,j;
    if(left>right)
        return;
   
    i=left;
    j=right;
    while(i!=j)
        while(a[j]>=a[left] && i<j)
            j--;
        while(a[i]<=a[left] && i<j)
            i++;
        
        if(i<j)
            t=a[i];
            a[i]=a[j];
            a[j]=t;
   
    t=a[left];
    a[left]=a[i];
    a[i]=t;
   
    quicksort(left,i-1);
    quicksort(i+1,right);
    return;
}

int main(void)
{
    int i;
    //int a[]={11,13,3,4,6,7,1,9,2};
    quicksort(0,8);
    for(i=0;i<=9;i++)
        printf("%d",a[i]);
    return 0;
}
 
搜索更多相关主题的帖子: 快速排序 输出 int left while 
2019-03-18 18:11
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:20 
for(i=0;i<=9;i++)   只有9个数,怎么输出10个数呢?
2019-03-18 21:57
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:0 
#include<stdio.h>
int a[]={11,13,3,4,6,7,1,9,2};
void quicksort(int left,int right)
{
    int t;
    int i,j;
    if(left>=right)   //
        return;
   
    i=left;
    j=right;
    t = a[left];   //
    while(i<j){
        while(a[j]>=t && i<j)
            j--;
        if(i<j){    //
            a[i] = a[j];
            i++;
        }
        while(a[i]<=t && i<j)
            i++;
        if(i<j){  //
            a[j] = a[i];
            j--;
        }
    }
    a[i]=t; //
   
    quicksort(left,i-1);
    quicksort(i+1,right);
    return;
}

int main(void)
{
    int i;
    quicksort(0,8);
    for(i=0;i<9;i++)
        printf("%d, ",a[i]);
    return 0;
}
2019-03-18 22:14
风流泰
Rank: 1
等 级:新手上路
帖 子:78
专家分:0
注 册:2018-9-29
收藏
得分:0 
回复 3楼 word123
谢谢指导
2019-03-19 15:17
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
缺少很多大括号,一定要养成while,if等等条件语句之后跟着一组大括号的习惯
程序代码:
#include<stdio.h>
int a[]={11,13,3,4,6,7,1,9,2};
void quicksort(int left,int right)
{
    int t; 
    int i,j;
    if(left>right)
        return;
    
    i=left;
    j=right;
    while(i!=j) {
        while(a[j]>=a[left] && i<j)
            j--;
        while(a[i]<=a[left] && i<j)
            i++; 
        
        if(i<j) {
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    }
    t=a[left];
    a[left]=a[i];
    a[i]=t;
    
    quicksort(left,i-1);
    quicksort(i+1,right);
    return; 
} 

int main(void)
{
    int i; 
    //int a[]={11,13,3,4,6,7,1,9,2};
    quicksort(0,8);
    for(i=0;i< 9;i++)
        printf("%d ",a[i]);
    return 0; 
} 

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2019-03-19 15:22
快速回复:这是个快速排序代码 编译后什么都没有输出 那个环节出了问题了求大佬们 ...
数据加载中...
 
   



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

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