| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 769 人关注过本帖
标题:大佬们好,这个程序编写输出应该是-985 -93 -2 0 1 4才对 ,为什么是- ...
取消只看楼主 加入收藏
风流泰
Rank: 1
等 级:新手上路
帖 子:78
专家分:0
注 册:2018-9-29
结帖率:87.88%
收藏
已结贴  问题点数:20 回复次数:0 
大佬们好,这个程序编写输出应该是-985 -93 -2 0 1 4才对 ,为什么是-985 -93 -93 -93 -93 -2呢? 那个环节出了问题
#include<stdio.h>

int FindPos(int * a,int low,int high);
void QuickSort(int * a,int low,int high);

int main(void)
{    int i;
    int a[6]={-2, 1, 0, -985, 4, -93};
    QuickSort(a,0,5);
//第二个参数表示第一个元素下标,第三个参数表示最后一个元素的下标
    for(i=0;i<6;i++)
    {
        printf("%d",a[i]);
    }
    printf("\n");
    return 0;
}

void QuickSort(int * a,int low,int high)
{
    int pos;
    if(low<high)
    {
        pos=FindPos(a,low,high);//找到pos的中间位置
        QuickSort(a,low,pos-1);//pos的左边
        QuickSort(a,pos+1,high); //pos的右边
    }
}


int FindPos(int * a,int low,int high)
{
    int val=a[low];
    while(low<high)
    {
        while(low<high&&a[high]>=val)
        {
            high--;
        }
        a[low]=a[high];
        while(low<high&&a[low]<=val)
        {
            low++;
        }
        a[high]==a[low];
    } //终止while循环之后low和high是相等的
    a[low]=val;
    return high;//high可以改为low 不可改成val a[low] a[high]
}
搜索更多相关主题的帖子: 程序编写 输出 int void while 
2019-02-15 20:15
快速回复:大佬们好,这个程序编写输出应该是-985 -93 -2 0 1 4才对 ,为什 ...
数据加载中...
 
   



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

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