您的位置:首页 > 编程语言 > Java开发

Java实现的希尔排序算法

2018-03-28 15:55 183 查看

一:希尔排序算法基本思想

希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。二:希尔排序视频讲解网址http://v.youku.com/v_show/id_XNjg1NTM4NTYw.html;(网页找到的视频,可以通过观看更好的理解算法思想)

三:源代码具体实现

package com.stu.demo;

import java.util.Arrays;

public class ShellSortDemo5 {
public static void shellSort(int arr[], int increment) {
int j;
int tmp;
increment = increment / 3 + 1;
for (int i = increment; i < arr.length; i++) {
j = i - increment;
tmp = arr[i];
while (j >= 0 && tmp < arr[j]) {
arr[j + increment] = arr[j];
j -= increment;
}
arr[j + increment] = tmp;
}
if (increment <= 1) {
return;
}
shellSort(arr, increment);
}

public static void main(String[] args) {
int arr[] = { 102223, 20, 32, 23, 24, 121, 53455, 21 };
shellSort(arr, 5);
System.out.println(Arrays.toString(arr));
}

}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: