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] + " ");

}

}

}

相关推荐
俊俊谢1 分钟前
【浮点运算性能优化】浮点转定点算法库的多平台通用移植方案与性能评估优化
算法·性能优化·c·浮点转定点·多平台移植
7哥♡ۣۖᝰꫛꫀꪝۣℋ1 分钟前
Spring WebMVC及常用注释
java·数据库·spring
电饭叔2 分钟前
Luhn算法与信用卡识别完善《python语言程序设计》2018版--第8章14题利用字符串输入作为一个信用卡号之三
android·python·算法
曹牧3 分钟前
C#:Dictionary类型数组
java·开发语言·c#
躺着听Jay3 分钟前
【1267 - Illegal mix of collations 】mysql报错解决记录
java·linux·前端
bbq粉刷匠7 分钟前
力扣-电话号码组合
java·算法
xunyan62347 分钟前
面向对象(下)-模版方法的设计模式其应用场景
java·学习·设计模式
Yweir11 分钟前
Linux性能监控的工具集和分析命令工具
java·linux·jvm
Dxxyyyy15 分钟前
零基础学JAVA--Day41(IO文件流+IO流原理+InputStream+OutputStream)
java·开发语言·python
狗头实习生16 分钟前
电话号码字母组合
java·算法·leetcode