c语言,求教用快速排序法,将十个数按大小顺序输出。-问答-阿里云开发者社区-阿里云

开发者社区> 知与谁同> 正文

c语言,求教用快速排序法,将十个数按大小顺序输出。

2018-07-16 12:08:21 1945 3
我们学了数组,循环,指针,求高手指点用这些东西怎么写。
取消 提交回答
全部回答(3)
  • 祁同伟
    2019-07-17 22:50:19
    给你个程序吧,按照从小到大排列的,答题不易,望采纳。不明白,请追问。 #include "stdio.h"
    #include "stdlib.h"
    #include "math.h"
    main()
    {
    int a[12];
    int i,j,t;
    printf("请输入10个数:\n");
    for(i=0;i<10;i++)
    scanf("%d",&a[i]);
    printf("排序前的数列为:\n");
    for(i=0;i<10;i++)
    printf("%4d",a[i]);
    printf("%\n");

    //排序
    for(i=0;i<10;i++)
    for(j=0;j<9-i;j++)
    if(a[j]>a[j+1]) 
    {
    t=a[j];
    a[j]=a[j+1];
    a[j+1]=t;
    }
    //结束排序

    printf("排序后的数列为:\n");
    for(i=0;i<10;i++)
    printf("%4d",a[i]);
    printf("%\n");
    }

    0 0
  • 一键天涯
    2019-07-17 22:50:19
    #include <stdio.h>
    #define MaxSize 100
    typedef int KeyType; /*关键字类型*/
    typedef char ElemType[10]; /*其他数据项类型*/
    typedef struct
    {
    KeyType key; /*关键字域*/
    ElemType data; /*其他数据域*/
    } LineList; /*线性表元素类型*/
    void QuickSort(LineList R[],int s,int t,int n) /*对R[s]至R[t]的元素进行快速排序*/
    {
    int i=s,j=t,k;
    LineList tmp;
    if (s<t) /*区间内至少存在一个元素的情况*/
    { R[0]=R[s]; /*用区间的第1个记录作为基准*/
    while (i!=j) /*从区间两端交替向中间扫描,直至i=j为止*/
    { while (j>i && R[j].key>R[0].key)
    j--; /*从右向左扫描,找第1个关键字小于tmp.key的R[j]*/
    R[i]=R[j]; /*找到这样的R[j],则R[i]和R[j]交换*/
    while (i<j && R[i].key<R[0].key)
    i++; /*从左向右扫描,找第1个关键字大于tmp.key的R[i]*/
    R[j]=R[i]; /*找到这样的R[i],则R[i]和R[j]交换*/

    }
    R[i]=R[0];
    printf("第%2d个位置为枢轴:",i);
    for (k=1;k<=n;k++)
    printf("%3d",R[k].key);
    printf("\n");

    QuickSort(R,s,i-1,n); /*对左区间递归排序*/
    QuickSort(R,i+1,t,n); /*对右区间递归排序*/

    }
    }
    void main()
    {
    LineList R[MaxSize];
    KeyType a[]={75,87,68,92,88,61,77,96,80,72};
    int n=10,i;
    for (i=0;i<n;i++)
    R[i+1].key=a[i];
    printf("排序前的原始次序:");
    for (i=1;i<=n;i++)
    printf("%3d",R[i].key);
    printf("\n");
    QuickSort(R,1,n,n);
    }
    0 0
  • 聚小编
    2019-07-17 22:50:19
    给你参考一下
    #include<stdio.h>
    int main()
    {
    int i, j, p, q, s, a[10];
    printf(" input 10 numbers:\n");
    for (i = 0; i < 10; i++)
    scanf("%d", &a[i]);
    for (i = 0; i < 10; i++)
    {
    p = i;
    q = a[i];
    for (j = i + 1; j < 10; j++)
    if (q > a[j])
    {
    p = j;
    q = a[j];
    }
    if (i != p)
    {
    s = a[i];
    a[i] = a[p];
    a[p] = s;
    }
    printf("%d\t", a[i]);
    }
    }
    0 0
添加回答
相关问答

17

回答

教你如何简单将OSS bucket挂载成为阿里云ECS服务器本地盘

梦丫头 2017-02-17 14:01:12 37890浏览量 回答数 17

5

回答

【阿里云】linux服务器安装nginx配置多个站点两种方法

自娱自乐 2014-03-29 14:53:12 22369浏览量 回答数 5

9

回答

阿里云ECS安装虚拟主机系统DirectAdmin开心版百分百成功的方法

hxs 2014-05-26 20:05:30 34379浏览量 回答数 9

10

回答

AMH5.0安装脚本顺便提醒是收费的每月5元。

是非良人 2014-08-31 15:13:27 20821浏览量 回答数 10

8

回答

阿里云服务器内网传输使用指南

任逍遥 2013-03-22 00:05:42 30473浏览量 回答数 8

3

回答

2020年05月编程排行榜-C语言继2015年,重新成为编程排行榜第一名

huc_逆天 2020-05-06 13:43:42 35312浏览量 回答数 3

4

回答

上传到OSS的文件md5hash值如何获取?!!

asker 2015-08-05 16:52:10 20863浏览量 回答数 4

14

回答

C语言基础 【精品问答合集】

我是管理员 2018-07-13 15:37:00 26580浏览量 回答数 14

10

回答

阿里云centos静默安装oracle

美味的小鱼 2014-08-12 14:23:44 30489浏览量 回答数 10

5

回答

C语言算法 【精品问答合集】

我是管理员 2018-07-13 15:51:28 26904浏览量 回答数 5
+关注
10077
文章
2994
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载