分享好友 最新动态首页 最新动态分类 切换频道
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. 结果显示

最新文章
幼儿园的教育计划书
生活中充满了不确定性也造成了混乱和焦虑,而制定出计划就可以增强确定性,从而给到足够的安全感。好的幼儿园的教育计划书要怎么写?小编给大家带来幼儿园的教育计划书,供大家参考。活动目标1.能从20厘米~30厘米高处往下跳,轻轻落地,保
连云港体育休闲广场启用AI智慧健身步道
本报讯 (连国资 郑舒婷 程义鑫)近年来,位于海州区瀛洲路68号的连云港体育休闲广场AI智慧健身步道,凭借强大的物联网和大数据功能,逐渐成为该市健身达人们的新宠,吸引众多市民前来打卡。
广西金花茶借助谷歌大数据走向国际化
10月30日,中国金花茶产业领域领航者——广西中港高科国宝金花茶产业有限公司(以下简称“中港高科”),携手Google AdWords广西体验中心运营方——广西领郡信息技术有限公司(以下简称“广西领郡”),联合主办的“中港高科2016‘一朵金花
怎么将图片转换成链接
图片因其需要的存储空间大,打开观看耗费流量,传播效率和速度都很低。在很多情况下,我们需要将图片转换成链接。便于携带观看及传播。怎么将图片转换成链接呢?有哪些方式呢?将图片换成链接可以借助在线转换工具来完成。目前,在图片转成
进口erp软件排名靠前还是靠后呢 进口erp软件排名揭秘:前5名为何备受企业青睐
进口软件在市场中的排名通常是靠前的。1、功能强大,2、技术先进,3、用户体验优良,4、品牌效应,5、市场口碑。这些因素使得进口ERP软件在企业中备受青睐。下面将详细介绍前5名进口ERP软件的具体优势及其在市场中的表现。综合性功能:进口
张飞、马超、许褚三人,从武艺和智谋两方面综合分析,如何排名
在三分时代,张飞、马超和许褚都武艺高强,勇猛善斗,都能够跻身于三国武力排名榜上"超级猛将"的行列。那么,三人从武艺和智谋两方面综合分析,又孰强孰弱,应该怎样排名呢?咱们首先来比较一下三人的武艺。幸运的是,这三位猛将彼此之间有
系统管理员都要知道的 30 个 Linux 系统监控工具
1. top - 进程活动监控命令命令会显示 Linux 的进程。它提供了一个运行中系统的实时动态视图,即实际的进程活动。默认情况下,它显示在服务器上运行的 CPU 占用率最高的任务,并且每五秒更新一次。图 01:Linux top 命令top 的常用快捷键常
网站如何百度快速收录文章内容(如何让百度快速收录网站)
在当今互联网时代,拥有一个自己的网站已经成为许多人展示个人品牌、分享知识和开展业务的重要方式,仅仅拥有一个网站还远远不够,如何让更多的人能够找到并访问你的网站才是关键,百度搜索引擎的收录是网站获得流量的重要途径之一,如何让
高清美女写真生成神器!用AI一键打造你的梦中情人?
ArtbreederArtbreeder 是一款基于 GAN(生成对抗网络)的在线平台,用户可以通过混合多张图像,来生成新的艺术图像,包括美女写真。其特有的“基因”系统允许用户调整人脸的特征,达到完美的效果。但是,它的操作复杂需要一点编程基础,不
神兽青龙大厅房卡充值(更多小游戏)
微信房卡连接充值找客服+图片中微信随着全球旅游业和酒店业的快速发展,酒店管理和客户体验已经成为现代商业竞争的关键。作为酒店管理中不可或缺的一部分,房卡在方便客人入住、提高管理效率、保障安全等方面扮演了至关重要的角色。本文将
相关文章
推荐文章
发表评论
0评