失效链接处理 |
希尔排序算法原理及其Java实现详解 PDF 下载
相关截图:
主要内容:
希尔排序(Shell Sort)是插入排序的一种更高效的改进版本。该方法的基本
思想是先取定一个整数 d1,把全部待排序的记录分成 d1 个组,所有距离为 d1
的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后取第二个整
数 d2,重复上述分组和排序工作。直至取 dt=1,即所有记录放在一个组中进行
直接插入排序为止。 希尔排序的时间复杂度优于 O(n^2),实际运行时间通常远
小于其他 O(nlogn)算法。 以下是希尔排序的 Java 实现:
public class ShellSort {
// 希尔排序的实现
public static void shellSort(int[] arr) {
int n = arr.length;
// 初始间隔
for (int gap = n / 2; gap > 0; gap /= 2) {
// 使用插入排序进行分组排序
for (int i = gap; i < n; i++) {
int temp = arr[i];
int j;
// 将 arr[i]插入到所在分组的正确位置
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap)
{
arr[j] = arr[j - gap];
}
arr[j] = temp;
}
}
}
// 主函数用于测试
public static void main(String[] args) {
int[] arr = {12, 34, 54, 2, 3};
shellSort(arr);
System.out.println("Sorted array is:");
for (int i : arr) {
System.out.print(i + " ");
}
}
}
|