java常用排序算法之希尔排序
2019-02-24 18:45
26 查看
package com.zjp.start.sort; import java.util.Arrays; /** * 希尔排序: * 先将序列分成较多个子序列分别进行排序,再分成较少个子序列分别进行排序,直到最后为一个序列排序。 */ public class ShellSort { public static void main(String[] args) { int[] arr = {49, 38, 65, 97, 76, 13, 27, 50}; shellSort(arr); System.out.println(Arrays.toString(arr)); } private static void shellSort(int[] arr) { //定义增量 int increment = arr.length / 2; while (increment >= 1) { //循环遍历每一个子序列 for (int i = 0; i < increment; i++) { //插入排序 for (int j = i + increment; j < arr.length; j += increment) {//j为选中元素的位置 int k = j;//k为要插入元素的位置 int tmp = arr[j]; while (k >= increment && arr[k - increment] > tmp) { //后移元素 arr[k] = arr[k - increment]; k -= increment; } //插入元素 arr[k] = tmp; } } //减小增量 increment = increment / 2; } } }
相关文章推荐
- Java常用排序算法之希尔排序
- 一步步学习数据结构和算法之常用排序效率分析及java实现
- [Java代码] Java排序算法之——希尔排序
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- 【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序
- 【算法拾遗(java描写叙述)】--- 插入排序(直接插入排序、希尔排序)
- 常用算法Java实现之选择排序
- 算法和数据结构-排序-希尔排序(Java)
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.8 希尔排序练习题(JAVA版)
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- Java 常用算法 插入,冒泡,快速排序大放送
- java常用排序算法之插入排序
- java常用排序之希尔排序
- Java常用排序算法之直接插入排序
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 算法和数据结构-选择排序、插入排序及希尔排序 java实现
- 一点一点的积累算法JAVA版之希尔排序(最小增量排序)
- 算法---常用的几种JAVA排序代码
- Java学习资料-Java常用算法-选择排序算法