java实现希尔排序

public class ShellSort {

public static void sort(int[] arr) {

int n = arr.length;

int gap = n / 2;

while (gap > 0) {

for (int i = gap; i < n; i++) {

int temp = arr[i];

int j = i;

while (j >= gap && arr[j - gap] > temp) {

arr[j] = arr[j - gap];

j -= gap;

}

arr[j] = temp;

}

gap /= 2;

}

}

public static void main(String[] args) {

int[] arr = {8, 2, 7, 3, 1, 5, 6, 4};

sort(arr);

for (int i = 0; i < arr.length; i++) {

System.out.print(arr[i] + " ");

}

}

}

相关推荐
是苏浙13 分钟前
2025年11月17日力扣刷题小记
算法·刷题
ZHE|张恒13 分钟前
设计模式(二)工厂方法模式 — 把创建权限下放给子类,像“可扩展的生产线”
java·开发语言·设计模式
@卞20 分钟前
ST 表相关练习题
数据结构·c++·算法
醒过来摸鱼22 分钟前
9.8 贝塞尔曲线
线性代数·算法·numpy
qq_124987075342 分钟前
基于springboot的兴趣生活展示交流平台的设计与实现(源码+论文+部署+安装)
java·spring boot·生活·毕设
2501_941111521 小时前
C++中的适配器模式
开发语言·c++·算法
2501_941111941 小时前
C++中的适配器模式变体
开发语言·c++·算法
明洞日记1 小时前
【设计模式手册008】适配器模式 - 让不兼容的接口协同工作
java·设计模式·适配器模式
zzz海羊1 小时前
VSCode配置java中的lombok
java·开发语言·vscode
A-code1 小时前
Git 多模块项目管理
java·开发语言