博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排序算法笔记:希尔排序 ShellSort in java
阅读量:6554 次
发布时间:2019-06-24

本文共 914 字,大约阅读时间需要 3 分钟。

hot3.png

/** * 希尔排序 * 简述: * 		希尔排序是插入排序的一种改进。将需要排序的序列划分成为若干个较小的子序列,对子序列进行插入排序,通过则插入排序能够使得原来序列成为基本有序。 * 时间复杂度: * 	 * 空间复杂度: *		 * 优点: * 		 * 缺点: * 		 * 可改进: * 		 * @author CheN *  */public class ShellSort {		/**	 * 正序	 * @param array	 * @return	 */	public static int[] asc(int[] array) {		return sort(array, array.length);	}	/**	 * 希尔排序	 * @param array	 * @param length	 * @return	 */	private static int[] sort(int[] array, int length) {		int step = length / 2; // 设置希尔排序的增量		// 增量必须为1,才可得到完整的排序		while (step >= 0) {			// 			for(int i = step ; i < length ; i++) {				// 从每一组数字的第二个数字开始,与前面的每一个数字进行比较,如果小,则插入。然后再用该组后续的数字与前面的数字进行比较,再交换。				int temp = array[i];				int j = i - step;				while (j >= 0 && array[j] > temp) {					array[j + step] = array[j];					j = j - step;				}				array[j + step] = temp;			}			step = step / 2; // 缩小增量		}		return array;	}}

 

若有错误或不妥之处,敬请谅解并指点。

 

转载于:https://my.oschina.net/wangchen881202/blog/192344

你可能感兴趣的文章
Thrift0.9.2 安装
查看>>
Maven使用大全
查看>>
linux 下添加一个不能登录的用户
查看>>
四周第三次课(2月28日)
查看>>
除了游戏和医疗,腾讯区块链还准备做什么?
查看>>
彻底认识 PendingIntent
查看>>
深入理解 new 操作符
查看>>
go实现区块链[1]-block
查看>>
00后都开始养生了!你还在熬最晚的夜?
查看>>
被嘲笑PPT做的辣眼睛?4个顶级辅助工具帮你完美逆袭!
查看>>
Nacos Committers 团队首亮相,发布 0.9.0 版本
查看>>
ROS作核心路由实验
查看>>
西部数据(WD)固件级数据恢复案例
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Why is "opatch auto" not patching my RAC database home?
查看>>
浅谈主机间网络通信实际过程
查看>>
最坑爹的USB网卡设置
查看>>
iOS开发ApplePay的介绍与实现
查看>>
iOS推送功能极光推送的介绍与实现
查看>>