欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > 重温经典算法——希尔排序

重温经典算法——希尔排序

2025/12/14 20:08:48 来源:https://blog.csdn.net/lfdfhl/article/details/148315474  浏览:    关键词:重温经典算法——希尔排序

版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

在这里插入图片描述

基本原理

希尔排序是插入排序的改进版,通过按增量分组并逐步缩小增量实现排序。时间复杂度取决于增量序列,平均约为 O(n log n) 到 O(n^(3/2)),空间复杂度 O(1),不稳定排序,适合中等规模数据。

代码实现

import java.util.Arrays;public class ShellSort {public static void shellSort(int[] arr) {int n = arr.length;// 使用 Knuth 增量序列(h = 3*h + 1)int h = 1;while (h < n / 3) h = 3 * h + 1; // 计算最大初始增量while (h >= 1) {// 按增量 h 进行插入排序for (int i = h; i < n; i++) {int current = arr[i];int j = i;// 在子数组中反向插入排序while (j >= h && arr[j - h] > current) {arr[j] = arr[j - h];j -= h;}arr[j] = current;}h /= 3; // 缩小增量}}public static void main(String[] args) {int[] arr = {8, 3, 1, 4, 6, 7, 2, 5};shellSort(arr);System.out.println("Sorted array: " + Arrays.toString(arr));// 输出:Sorted array: [1, 2, 3, 4, 5, 6, 7, 8]}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词