懒癌患者的学习记录之JAVA希尔排序
希尔排序
希尔排序的基本思路
在看希尔排序之前建议先看一下简单插入排序
1.我们先设置一个增量gap=length/2
2.将数组从0开始与0+length/2 两两组成一组,这个时候分成了length/2组。
3.将每组中的两个按顺序排序
4.将gap = gap/2,这个时候将数组分成gap/2组,即0,0+gap,0+gap+gap,直到后面没有。
5.然后将每组顺序排列好(一般用简单插入排序)
6.不断的将增量减少,直至增量为0;
代码
public class XiEr {static void xier(int[] arr,int gap) {gap = gap/2;if(gap>0){//是否可以继续和并组for(int i = 0;i < gap; i++) {for(int j = gap+i ; j <= arr.length-1;j+=gap ){for(int k = j - gap ; k >=0 ; k -= gap){if(arr[j]<arr[k]){int mid = arr[j];arr[j] = arr[k];arr[k] = mid;}}}}xier(arr,gap);}}public static void main(String[] args){int[] arr = {1,6,7,8,9,10,4,3,2,5,};xier(arr, arr.length);for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}
}
懒癌患者的学习记录之JAVA希尔排序相关推荐
- 懒癌患者的学习记录之JAVA冒泡排序代码
冒泡排序 冒泡排序基本思路: 从第零位开始,依次与后一位进行比较并将较大的往后排较小的往前排.第一次循环就会将最大的值排在最后一位,第二次循环会将第二大的值排在倒数第二位,以此类推. JAVA冒泡排序 ...
- 懒癌患者的学习记录之JAVA简单选择排序
简单选择排序 简单选择排序基本思虑 1.简单来说就是找到数组中最小的放到0,第二小的放到1,以此类推. 2.首先假设第0个值为最小 3.然后从他后面的值找到比他小的,设那个值为最小,以此类推,直到最后 ...
- 懒癌患者的学习记录之JAVA简单插入排序
简单插入排序 简单插入排序的基本思路 1.将数组的前n个数视为一个有序数列(先将第一个数视为有序数列,然后前两个数,再前三个数) 2.将第n+1与前面的所有数进行比较,找到该数所在位置将其插入(其他数 ...
- 懒癌患者的学习记录之JAVA快速排序代码
快速排序 快速排序基本思路 1,取数组中的一个数(一般为最左边的数)作为基准点 2,从数组的最右边开始取值与基准点进行比较,取比基准点小(大)的值 3,从数组的最左边开始取值与基准点进行比较,取比基准 ...
- 懒癌患者的学习记录之课程代码旋转木马(3d旋转效果)
旋转木马3d旋转效果 设计思路 一,用大div将需要旋转的元素包裹起来,该大div称之为舞台 <div id="d"><div class="d1&qu ...
- 懒癌患者的学习记录之小知识点
8bit(位) = 1字节 1024字节 = 1kb 1024kb = 1mb 1024mb = 1GB 1024GB = 1TB 2.html的注释是什么? <!-- 注释说明.... --& ...
- java基础案例教程前4章知识点_java学习记录4 Java基础知识点
java学习记录4 Java基础知识点 1. 注释 单行注释 使用"//"开头,后面是注释的内容 一般在要注释的语句的上面加注释 多行注释 以"/*"开头,以& ...
- IDL学习记录和Java调用IDL方法
IDL学习记录和Java调用IDL方法 2018年02月06日 08:32:02 回首1949 阅读数:385更多 个人分类: 随想 版权声明:乐呵乐呵得了 https://blog.csdn.net ...
- gradle exclude_Gradle学习记录020 java工程的测试 part1
详细学习如何用Gradle测试java工程.第二部分.该学习记录基于Gradle官方网站资料.本篇参考链接如下: https://docs.gradle.org/current/userguide/j ...
最新文章
- 【动态规划】区间DP - 最优矩阵链乘(另附POJ1651Multiplication Puzzle)
- corn java 可配置_SpringBoot——目前Java开发最流行的框架(四)
- Install Qt5 on Ubuntu 16.04
- BootStrap2学习日记16---选项卡内容
- word2vec词向量 文本分类实现(TensorFlow版,算法TextCNN)
- MySQL覆盖索引:直接从索引查询到了数据
- idea打开ini文件以记事本方式修改
- ngrx注入到应用类构造函数里的store变量
- 汇编烧程序进单片机要什么软件_单片机编程语言及应用技巧解析
- R 绘制风洞实验数据曲线
- CentOS 7 安装 MySQL 5.6
- 世界互联网大会乌镇峰会:14项世界互联网领先科技成果发布
- OpenCL入门程序
- mugen linux主程序,MUGEN主程序
- Protel常用封装库
- excel中去重计数_在Excel中计数
- 桌面虚拟化(VDI)的概述
- c语言圆角矩形实现,MFC怎么绘制一个圆角矩形
- js每日一题(11)
- Android选择本地视频和照片上传到服务器
热门文章
- 阿里构建“安全”的流量体系 微博成最大的淘宝客
- 艾司博讯:拼多多商品描述怎么写好?以下方法
- mysql 矩阵运算_MySQL实现算法:矩阵快速幂
- UTips校园资讯助手用户体验报告
- 需要一个前端小哥哥或小姐姐 救救孩子吧 T_T
- [HZWER NOIP模拟题][杂题][防骗题]数列
- apache friends - xampp
- linux解压jar
- 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第十一章 攻击性取证
- c++智能指针用法详解