java算法之希尔排序
来源:互联网 发布:网络布线测试报告 编辑:程序博客网 时间:2024/05/22 12:44
基本思想
先将待排序的数组元素分成多个子数组,使得每个子数组的元素个数相对较少,然后对各个子数组分别进行直接插入排序,待整个待排数组“基本有序”后,最后在对所有元素进行一次直接插入排序。
代码
public class ShellSort { public static void shellSort(int[] arrays) { int temple; if (arrays == null || arrays.length <= 1) { return; } // 增量 int incrementNum = arrays.length / 2; while (incrementNum >= 1) { for (int i = incrementNum; i < arrays.length; i++) { // 进行插入排序 for (int j = i; j >= incrementNum; j = j - incrementNum) { if (arrays[j] < arrays[j - incrementNum]) { temple = arrays[j]; arrays[j] = arrays[j - incrementNum]; arrays[j - incrementNum] = temple; } } } // 设置新的增量 incrementNum = incrementNum / 2; } } public static void main(String[] args) { int[] a = new int[] { 49, 38, 65, 97, 76, 13, 27, 50 }; shellSort(a); for (int i : a) System.out.print(i + " "); }}
时间复杂度
O(n)——–最好
O(n^2)—–最坏
O(nlog2n)–平均
阅读全文
0 0
- java算法之希尔排序
- Java算法之希尔排序
- 排序算法之希尔排序(JAVA)
- Java算法排序之--希尔排序法
- java排序算法之希尔排序
- 排序算法之希尔排序Java版
- 排序算法之希尔排序(Java)
- Java常用排序算法之希尔排序
- java排序算法之希尔排序
- 排序算法之希尔排序(Java)
- Java排序算法之希尔排序
- 排序算法之希尔排序 java实现
- Java排序算法之希尔排序
- Java八大排序算法之希尔排序
- 排序算法之希尔排序--Java语言
- 算法学习之希尔排序(java)
- Java -- 算法小结之希尔排序
- 算法学习之java实现希尔排序
- 图论专项菜鸡入门(二):图的遍历
- 自动编码器
- 【Python】Python2与Python3的不同
- Server Tomcat v9.0 Server at localhost failed to start
- E
- java算法之希尔排序
- JQuery 中 实现复选框全选/全不选/反选功能 案例
- 【C语言】文件位置指针
- Hdu 2457 DNA repair AC自动机+DP
- 服务器渲染与客户端渲染
- mysql workbench入门记(一)-介绍及简单使用
- Ubuntu 16.04 禁用Guest用户
- mysql-5.7.19-winx64配置
- tensorflow学习相关资料收集