java算法----排序----(6)希尔排序(最小增量排序)
1 package log; 2 3 public class Test4 { 4 5 /** 6 * java算法---希尔排序(最小增量排序) 7 * 8 * @param args 9 */ 10 public static void main(String[] args) { 11 // 需要排序的数组 12 int arr[] = { 49, 20, 36, 51, 18, 94, 61, 31, 50 }; 13 double d1 = arr.length; 14 int temp = 0; 15 // 循环输出该数组内容 16 System.out.println("排序之前:"); 17 for (int a : arr) { 18 System.out.print(a + "\t"); 19 } 20 System.out.println(); 21 22 while (true) { 23 d1 = Math.ceil(d1 / 2) % 2 == 0 ? Math.floor(d1 / 2) : Math.ceil(d1 / 2); 24 int d = (int) d1; 25 for (int x = 0; x < d; x++) { 26 for (int i = x + d; i < arr.length; i += d) { 27 int j = i - d; 28 temp = arr[i]; 29 for (; j >= 0 && temp < arr[j]; j -= d) { 30 arr[j + d] = arr[j]; 31 } 32 arr[j + d] = temp; 33 } 34 } 35 if (d == 1) { 36 break; 37 } 38 39 } 40 41 // 循环输出该数组内容 42 System.out.println("排序之后:"); 43 for (int a : arr) { 44 System.out.print(a + "\t"); 45 } 46 System.out.println(); 47 48 } 49 50 }
转载于:https://www.cnblogs.com/javallh/p/8762412.html
java算法----排序----(6)希尔排序(最小增量排序)相关推荐
- Java八大排序算法之希尔排序(最小增量排序)算法
希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shell于1959年提出而得名. ------- ...
- C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】
目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...
- 算法系列【希尔排序】篇
常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等.用一张图概括: 关于时间复杂度: 1. 平方阶 (O(n2)) 排序各类简单排序:直接插入 ...
- Java数据结构——直接插入排序+希尔排序+冒泡排序
文章目录 一.插入排序 (一).什么是插入排序 (二).图例 (三).Java代码 二.希尔排序 (一).什么是希尔排序 (二).图例 (三).Java代码 三.冒泡排序 (一).什么是冒泡排序 (二 ...
- java程序员必知的 8大排序
下载了文档自己截图存留 8种排序之间的关系: 1, 直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 好顺序的,现在要把第n个数插到前面的有序数中, ...
- python中用def实现自动排序_用 python 实现各种排序算法
常见集中排序的算法 归并排序 归并排序也称合并排序,是分治法的典型应用.分治思想是将每个问题分解成个个小问题,将每个小问题解决,然后合并. 具体的归并排序就是,将一组无序数按n/2递归分解成只有一个元 ...
- 蓝桥杯:算法很美 笔记 3.查找和排序(Python实现)
1.分治法介绍以及关键点解析 分治法(divide and conquer, D&C)∶将原问题划分成若干个规模较小而结构与原问题一致的子问题﹔递归地解决这些子问题,然后再合并其结果,就得到原 ...
- 希尔排序的java算法_Java算法系列篇 【希尔排序】
什么? 搞Java不会算法? 由于个人兴趣原因以及工作所需,最近了解Java算法的相关案例 及时分享 感兴趣的欢迎交流 希尔排序 描述: 基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直 ...
- java shell排序_八大排序算法——希尔(shell)排序
一.动图演示 二.思路分析希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序:随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止. 简单插入 ...
最新文章
- Asp.net Ajax框架教程
- Spring Boot 配置文件的加载优先级
- No.6 建立swap分区、进程、安装软件包的方法(rpm,yum,编译)
- 深入解读无服务器架构下的数据库
- freebsd mysql utf8_FreeBSD下安装mysql基本步骤
- 《那些年啊,那些事——一个程序员的奋斗史》——49
- 架构设计--逻辑层 vs 物理层
- python虚拟环境 pyenv_Python多版本管理和虚拟环境维护(pyenv, pyenv-virtualenv)
- 音视频即时通讯开发功能介绍
- Abaqus简单部件受力分析
- 富士通Fujitsu DPK2181H Pro 打印机驱动
- 注塑行业MES实施方案
- 更换IP地址方式简介。
- 玩转华为ENSP模拟器系列 | 配置普通NTP对等体模式示例
- linux启动流程及自定义gurb
- 搜索市场变局:话说云云
- 生成带参数的微信二维码
- 晓宇姐姐带你软硬结合,感受下ADC DMA采集多路电压电流
- 1024程序员吐槽大会,看完头发都笑掉了
- 解决M4以上版本每次重启生成 SpringAutoDeployment 记录的问题