分享好友 最新动态首页 最新动态分类 切换频道
C语言希尔排序成绩排名,经典排序算法---希尔排序(C/C#)
2024-12-26 22:19

原理:每隔sp(整数)个数即取数并推断大小,交换,先构造局部有序序列。直到sp为1,构造完整的有序序列。

给出一组数据。例如以下

0

1

2

3

4

5

6

7

8

9

49

38

65

97

76

13

27

49

55

4

对这个数据,将sp设为5,即先取49。与13比較,进行交换;再取38,与27对照,进行交换。以此内推。

终止条件是76与4对照完。至此,我们能够写出例如以下希尔函数的核心部分

for(i=0;i

for(j=i;j

if(a[j]>a[j+sp])

{

t=a[j];a[j]=a[j+sp];a[j+sp]=t;

}

当然,这不过走完了排序的第一趟

要完毕真正的排序,还要进行循环!

一、C语言版

1、希尔函数

void ssort(int a[],int n,int sp) //n为数据大小,sp为间隔

{

int i,j,t;

for(i=0;i

for(j=i;j

if(a[j]>a[j+sp])//假设前面你的大于后面的,则进行交换

{

t=a[j];a[j]=a[j+sp];a[j+sp]=t;

}

}

我们知道,希尔排序一趟是排不出终于结果的,sp要从大到小,最后取到1才干完毕,于是在主调函数里要调用多次ssort函数(如以下main函数里的标红部分),于是我们将多个sp综合到一个数组里。再将这个数组套入循环,就可以得到一个新的函数,这样在主函数里就能够直接调用该函数了,例如以下

void shellsort(int a[],int n,int d[],int dn) //dn为sp的个数

{

int i;

for(i=0;i

ssort(a,n,d[i]);

}

2、main函数

main()

{

inta[10]={49,38,65,97,76,13,27,49,55,4},j;

int d[]={5,3,1};

//ssort(a,10,5);

//ssort(a,10,3);

//ssort(a,10,1);

shellsort(a,10,d,3);//一次调用多个循环

for(j=0;j<10;j++)

printf("%d  ",a[j]); //打印最后排序结果

printf("%d ");

}

3. 结果显示

二、C#版

1. 构造算法类

class XiEr

{

public void ssort(int[] a, int n, int sp)

{

int i, j, t;

for (i = 0; i < n - sp; i++)

for (j = i; j < n - sp; j += sp)

if (a[j] > a[j + sp])

{

t = a[j]; a[j] = a[j + sp]; a[j + sp] = t;

}

}

public void shellsort(int[] a, int n, int[] d, int dn)

{

int i;

for (i = 0; i < dn; i++)

ssort(a, n, d[i]);

}

}

2. 前端调用

private void button1_Click(object sender, EventArgs e)

{

int j;

int[] a = { 49, 38, 100, 97, 76, 13, 27, 49, 55, 4 };

int[] d = { 5, 3, 1 };

XiEr xier = new XiEr();

xier.shellsort(a, 10, d, 3);

listBox1.Items.Clear();

string tt = "";

for (j = 0; j < 10; j++)

tt = tt + a[j].ToString() + ' ';

listBox1.Items.Add(tt);

}

3. 结果显示

最新文章
让企业从小数据变大数据,价值反哺企业,形成良性循环
让企业从小数据变大数据,价值反哺企业,形成良性循环? 技术服务+平台运营+软件开发服务,微三云麦超介绍前文介绍:微三云云平台底层: 基于云平台底层框架开发,可与其他应用体系打通,实现数据互通,便于统一管理。 平台可将多种模式结合
苏州百度推广关键词优化
在苏州,百度推广关键词优化是一个重要的环节,它能够帮助企业提高在百度搜索引擎中的排名,从而吸引更多的潜在客户,本文将从以下几个方面介绍苏州百度推广关键词优化的相关知识。在苏州,许多企业都意识到了关键词优化在百度推广中的重要
热搜榜单揭晓:北京石景山最受欢迎小区盘点!
——热搜小区第三名:京汉旭城位于石景山鲁谷的京汉旭城,以60411元/㎡的均价,加上1.00%的环比降幅,让这座小区吸引到了不少关注。吸引点:该小区楼盘设计现代,配套设施齐全,适合年轻家庭居住。——热搜小区第四名:西下庄小区西下庄小
【Grand S Flex腾讯手机管家下载】中兴Grand S Flex腾讯手机管家16.1.19免费下载
腾讯手机管家专注手机骚扰拦截,动态守护手机安全,深度清理微信、QQ缓存,让手机体积减半,拒绝卡慢。---认真服务---【骚扰拦截】智能拦截骚扰电话,过滤诈骗垃圾短信【清理加速】清理加速能力升级,释放空间告别卡慢【微信清理】个性清理
满足全场景需求,华为平板+鸿蒙系统重塑移动办公新格局
随着双旦节日的临近,选择一份贴心的新年好礼尤为重要。在众多礼物中,凭借其便携性、多功能性和高效性备受青睐。华为平板凭借卓越的硬件配置、创新的鸿蒙系统以及丰富的应用场景,成为了不少人的首选。华为平板:创新鸿蒙,引领智慧办公潮
winetricks 用WineTricks令你的Wine更完整
原文网址:http://blog.csdn.net/iwtwiioi/article/details/10530561wine,是一款优秀的Linux系统平台下的模拟器软件,用来将Windows系统下的软件在Linux系统下稳定运行,该软件更新频繁,日臻完善,可以运行许多大型Windows系统下的软件。
自己编辑微信聊天对话的软件推荐 提供智能聊天的软件有哪些
许多朋友在使用微信聊天的时候,为了方便并且节约时间。会使用一些聊天软件,提前制作一些常用的聊天语。这样在聊天的时候可以直接使用这些短语。节约大量时间。那么自己编辑微信聊天对话的软件推荐有哪些呢?如果想要能够每次在聊天的时候
百度SEO已死_2021百度seo(百度seo sem)
1、1处理惩罚死链接的时间我们最好找到死链接自身所处的位置,然后在页面中手动删除2假如死链接太多我们可以利用robotstxt来屏蔽3利用工具提交死链,当网站死链数据累积过多时,可以把全部死链接整理放在一个文件内里,并把制作好的文件上
高清美女写真一键生成:探索最强AI绘画工具及操作指南
接下来,让我们详细介绍使用搜狐简单AI生成美女写真的步骤,保证大家都能轻松跟随操作。步骤一:访问搜狐简单AI小程序在微信中搜索“搜狐简单AI”小程序,点击进入。步骤二:选择生成类型进入后,选择“美女写真”选项。您会看到多个模板供
相关文章
推荐文章
发表评论
0评