希尔排序算法(C语言实现)

希尔排序算法(C语言实现)希尔排序算法 demo

一、希尔排序

由希尔在1959年提出,设定一个元素间隔增量gap,将参加排序的序列按这个间隔分成若干个子序列,对子序列用一般排序法排序与冒泡排序的思想相似,即将两数比较交换;冒泡法是相邻两数比较交换,而希尔排序只有当希尔间隔值为1时才与冒泡法完全一样,所以可以跟据希尔间隔值的不同进行分组排序最优间隔值是至今未解决的数据难题,一般用折半间隔,直到间隔为1;如果直接将希尔间隔设为1效率则是最低的,需要多次遍历。

二、希尔排序处理过程

将固定间隔值两两比较交换,若干次后,这个序列将成为一个有序序列对分好组的子序列采用两两比较交换,循环比较一遍之后序列不一定有序,所以对于子序列可能会进行多次循环比较,直到排好序。

三、图解

希尔排序算法(C语言实现)

四、demo

void shellsort(int *k,int n) { int i, j, temp, gap = n; while(gap > 1) { gap = gap/2; /*增量缩小,每次减半*/ for(i=0;i<n-gap;i++) //n-gap 是控制上限不让越界 { j = i + gap; //相邻间隔的前后值进行比较 if(k[i]>k[j]) { temp = k[i]; k[i] = k[j]; k[j] = temp; } } } }




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233944.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • qt tcpsocket_qt的socket通信

    qt tcpsocket_qt的socket通信QTcpSocket类的方法connectToHost会泄露内存,即使把调用这个方法的QTcpSocket实例delete掉,内存也不会释放!反复connectToHost会导致段错误,十分危险。必须控制connectToHost的使用次数!连接服务器m_tcpSocket->connectToHost(“127.0.0.1”,9877);connected=m_tcpSocket-

    2025年10月16日
    3
  • 软件测试外包_为什么不能去外包公司

    软件测试外包_为什么不能去外包公司【随笔】测试外包的正确打开方式

    2022年4月21日
    56
  • win10开始键没反应解决方法「建议收藏」

    win10开始键没反应解决方法「建议收藏」win10开始键没反应解决方法具体方法如下:1、打开运行窗口。windows7系统:通过“开始”菜单进入。点击“开始”菜单,从打开的菜单中依次点击“所有程序”>“附件”>“运行”来打开“运行”窗口。windows10系统:右击屏幕左下角win标志,在弹出的菜单中找到“运行”,点击进入运行窗口2、在搜索窗口输入“regedit”,打开注册表编辑器。3、在在注册表“HKEY_CLASSES_ROOT”主键下找到“lnkfile”字符串值项。打开它。4、在右侧右击它,会出现一个菜单

    2022年5月4日
    45
  • ssh sftp端口_sftp端口号是多少

    ssh sftp端口_sftp端口号是多少ssh/sftp默认端口是22.开通网络策略时,多会因为安全问题产生不便,所以需要修改端口。与其说是修改,不如说是增加,以增加2222端口为例。方法如下:修改ssh配置文件/etc/ssh/ssh_config及/etc/ssh/sshd_config将Port22前面的#放开,并在下面添加Port2222执行命令使配置生效servicesshdrestart检查是否生效sftp-P2222ip…

    2025年11月17日
    3
  • Adobe Dreamweaver 2021下载安装教程

    Adobe Dreamweaver 2021下载安装教程软件介绍AdobeDreamweaver2021是专业的网站设计软件,使用可为处理各种Web文档提供灵活的环境。Dreamweaver2021一款非常受欢迎的网页设计软件,是该系列的全新版本,可以帮助广大学生、程序员制作出精美的网页,在全新的Dreamweaver2021版本中,在其优秀的功能上带来了更多的改进和优化,拥有无缝实时视图编辑功能,在以往用户需要切换到单独的编辑模式来预览网站,现在仅需一键即可预览和更改网页,还支持Windows的多显示器方案,为用户带来了更加整洁主界面,并且修改了十多个

    2022年7月14日
    21
  • journalctl 清理journal日志

    journalctl 清理journal日志在CentOS7开始使用的systemd使用了journal日志,这个日志的管理方式和以往使用syslog的方式不同,可以通过管理工具维护。使用df-h检查磁盘文件,可以看到/run目录下有日志目录/run/log/journal,占用了数G空间FilesystemSizeUsedAvailUse%Mountedon/dev/ma…

    2022年5月23日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号