首页 > 编程语言 > 详细

用希尔排序法对一组数据由小到大进行排序-------计应192(西)二组-----------王永亲

时间:2021-04-11 16:17:54      阅读:19      评论:0      收藏:0      [点我收藏+]

用希尔排序法对一组数据由小到大进行排序,数据分别为 69、56、12、136、3、55、46、 99、88、25。

实现过程:

(1)自定义函数 shsort(),实现希尔排序。

(2) main() 函数作为程序的入口函数。程序代码如下:

#include <stdio.h>

int shsort(int s[], int n)    /* 自定义函数 shsort()*/

{

    int i,j,d;

    d=n/2;    /*确定固定增虽值*/

    while(d>=1)

    {

        for(i=d+1;i<=n;i++)    /*数组下标从d+1开始进行直接插入排序*/

        {

            s[0]=s[i];    /*设置监视哨*/

            j=i-d;    /*确定要进行比较的元素的最右边位置*/

            while((j>0)&&(s[0]<s[j]))

            {

                s[j+d]=s[j];    /*数据右移*/

                j=j-d;    /*向左移d个位置V*/

            }

            s[j + d]=s[0];    /*在确定的位罝插入s[i]*/

        }

        d = d/2;    /*增里变为原来的一半*/

    }

return 0;

}

int main()

{

    int a[11],i;    /*定义数组及变量为基本整型*/

    printf("请输入 10 个数据:\n");

    for(i=1;i<=10;i++)

    scanf("%d",&a[i]);    /*从键盘中输入10个数据*/

    shsort(a, 10);    /* 调用 shsort()函数*/

    printf("排序后的顺序是:\n");

    for(i=1;i<=10;i++)

    printf("%5d",a[i]);    /*输出排序后的数组*/

    printf("\n");

    return 0;

}

运行结果:

请输入 10 个数据:

69 56 12 136 3 55 46 99 88 25

排序后的顺序是:

3   12   25   46   55   56

PSP 各个阶段

 预估时间

(分钟)

实际记录

(分钟)

计划

 30  

 30

明确需求和其他因素,估计以下的各个任务需要多少时间

 30

 30

开发

 210

 250

. 需求分析(包括学习新技术、新工具的时间)

 20

 25

. 生成设计文档(整体框架的设计,各模块的接口,用时序图,快速原型等方法)

 25

 30

. 设计复审 (和同事审核设计文档,或者自己复审)

 25

 30

.代码规范(为目前的开发制定或选择合适的规范)

 20

 30

.具体设计

 30

 35

.具体编码

 30

 30

.代码复审

 30

40 

.测试(自我测试,修改代码,提交修改)

 30

 30

报告

 35

 35

· 测试报告

 5

 5

·计算工作量

 10

 10

·事后总结,并提出改进计划

 20

 20

总共花费的时间(分钟)

 275

 315

用希尔排序法对一组数据由小到大进行排序-------计应192(西)二组-----------王永亲

原文:https://www.cnblogs.com/xixihenkeaiya/p/14643744.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!