在C语言中 编写一个程序实现从小到大排序

在C语言中设有一组数{1,-2,53,49,144,65,267,98,112},编写一个程序实现从小到大排序... 在C语言中 设有一组数{1,-2,53,49,144,65,267,98,112}, 编写一个程序实现从小到大排序 展开
 我来答
阿尔迈凡
推荐于2018-06-18 · TA获得超过8460个赞
知道大有可为答主
回答量:5744
采纳率:14%
帮助的人:1969万
展开全部
#include <stdio.h>
#include <stdlib.h>

int cmp(const void *a,const void *b)
{
    return *(int *)a-*(int *)b;
}

int main(int argc,char **argv)
{
    int a[]={1,-2,53,49,144,65,267,98,112};
    int i;

    qsort(a,sizeof(a)/sizeof(int),sizeof(int),cmp);

    for(i=0;i < sizeof(a)/sizeof(int);++i)
        printf("%d ",a[i]);

    printf("\n");

    return 0;
}

如果要自己实现排序函数的话

#include <stdio.h>

void qsort(int *a,int left,int right)
{
    int p=(left+right)/2; //以中间数作为主元
    int k=a[p];
    int i=left,j=right;

    while(i < j)
    {
        //从左边开始将大于主元的数放在主元右边
        while((i <= p) && (a[i] <= k))
            ++i;
        if(i < p)
        {
            a[p]=a[i];
            p=i;
        }

        //从右边开始将小于主元的数放在左边
        while((j >= p) && (a[j] >= k))
            --j;
        if(j > p)
        {
            a[p]=a[j];
            p=j;
        }
    }

    a[p]=k;
    //如果左边的数大于1个则递归左边
    if(p-left > 1)
        qsort(a,left,p-1);
    //如果右边的数大于1个则递归右边
    if(right-p > 1)
        qsort(a,p+1,right);
}

int main(int argc,char **argv)
{
    int a[]={1,-2,53,49,144,65,267,98,112};
    int i;

    qsort(a,0,sizeof(a)/sizeof(int)-1);

    for(i=0;i < sizeof(a)/sizeof(int);++i)
        printf("%d ",a[i]);
    printf("\n");

    return 0;
}
天雨下凡
2016-01-15 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65144
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部
#include <stdio.h>
int main(void)
{
    int i,j,temp;
    int num[9]={1,-2,53,49,144,65,267,98,112};
    for(i=0;i<9;i++)
    for(j=i+1;j<9;j++)
    {
        if(num[j]<num[i])
        {
            temp=num[i];
            num[i]=num[j];
            num[j]=temp;
        }
    }
    for(i=0;i<9;i++)
        printf("%5d",num[i]);
    printf("\n");
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式