用JAVA实现排序算法之五:希尔排序

news/2024/7/4 1:20:18 标签: 算法, java, integer, string, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

    本篇文章介绍希尔排序class="tags" href="/tags/SuanFa.html" title=算法>算法的JAVA实现。

    希尔排序class="tags" href="/tags/SuanFa.html" title=算法>算法的基本思想是:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。该方法实质上是一种分组插入方法。

    以下是希尔排序class="tags" href="/tags/SuanFa.html" title=算法>算法的JAVA代码实现:

package cn.simon.sort; public class ShellSort { public static <T extends Comparable<? super T>> void shellSort(T[] array, int len) { int d = len; while (d > 1) { d = (d + 1) / 2; for (int i = 0; i < len - d; i++) { if (array[i + d].compareTo(array[i]) < 0) { T temp = array[i + d]; array[i + d] = array[i]; array[i] = temp; } } } } public static void main(String[] args) { Integer[] testArray = {23, 25, 12, 42, 35}; ShellSort.shellSort(testArray, 5); System.out.println("The result is:"); for (Integer item : testArray) { System.out.print(item); System.out.print(' '); } } }  


http://www.niftyadmin.cn/n/1863331.html

相关文章

基于ATtiny85微控制器制作一款四通道温度计

本文主要介绍了一款基于ATtiny85微控制器的四通道温度计&#xff0c;该温度计可以同时监测四个温度传感器的温度&#xff0c;并且实时在小型128x32 OLED液晶屏上进行显示。 该温度计可以用于任何需要监控多个温度点的应用中&#xff0c;例如控制温室、检查功率放大器中的输出晶…

java token抛异常_java – Spring Oauth2 – 自定义异常处理程序

在Spring Security基于Oauth2的身份验证中,当客户端发送需要刷新的访问令牌时,DefaultTokenServices类会抛出InvalidTokenException(参见第235行)&#xff1a;发生这种情况时的输出是这样的&#xff1a;{"error":"invalid_token","error_description&…

“代码之丑”系列文章转载

这几天按照惯例上InfoQ看一些新动态&#xff0c;拜读了其中的“代码之丑”的系列文章&#xff0c;颇有感触&#xff0c;特别将该系列的原文进行转载&#xff0c;在贴出原文之前&#xff0c;先了解一下作者的背景。 作者简介&#xff1a;郑晔&#xff0c;ThoughtWorks公司咨询师…

nginx php关系_nginx,php_nginx配置文件 与 php-fpm配置文件 对应关系,nginx,php,fpm - phpStudy...

nginx配置文件 与 php-fpm配置文件 对应关系ngin配置文件如下:user nobody nobody;worker_processes 4; //Nginx要开启的进程数error_log logs/error.log notice;pid logs/nginx.pid;worker_rlimit_nofile 65535; //用于绑定worker进程和CPU&#xff0c; Linux内核2.4以上可用e…

Linux设备驱动程序学习(10) -时间、延迟及延缓操作

度量时间差时钟中断由系统定时硬件以周期性的间隔产生&#xff0c;这个间隔由内核根据 HZ 值来设定&#xff0c;HZ 是一个体系依赖的值&#xff0c;在 <linux/param.h>中定义或该文件包含的某个子平台相关文件中。作为通用的规则&#xff0c;即便如果知道 HZ 的值&#x…

SharpStreaming项目开发纪实:项目源码发布

很遗憾&#xff0c;由于近期忙着换工作&#xff0c;未能继续SharpStreaming项目的开发工作&#xff0c;而本人现所从事的新工作也逐渐远离了C#和流媒体技术。至此&#xff0c;SharpStreaming项目宣告流产了&#xff01; 虽然&#xff0c;这是一件很不幸的事情&#xff0c;但秉着…

如何使用Arduino UNO开发板编程ATtiny85

最近在Youtube上看了一个GreatScott制作的有关如何使用Attiny85的精彩教程&#xff0c;之后我购买了一片Attiny85 IC。但是&#xff0c;我花了很长时间尝试在它上面运行一个简单的LED闪烁的代码。最后经过很多次的搜索&#xff0c;终于找到唯一适用于我的方法。我决定做一个简单…

盘点开发过程中所使用的一些工具

到一个新的环境、一个新的团队中工作接近一个月了&#xff0c;这一个月以来&#xff0c;笔者接触了不少与笔者自身开发工作相关的工具&#xff0c;趁着空闲这个空档&#xff0c;在这里粗略盘点一下开发工作过程中所用到的这几样工具。其实&#xff0c;没有什么好稀奇的&#xf…