public static void main(String[] args) {
int[] arr = new int[]{2, 5, 3, 7, 1, 8, 3, 9, 0};
System.out.println(Arrays.toString(arr));
Main.Hill(arr);
System.out.println(Arrays.toString(arr));
}
private static void Hill(int[] arr) {
int k = 1;
//遍历所有步长
for (int d = arr.length / 2; d > 0; d /= 2) {
//遍历所有元素
for (int i = d; i < arr.length; i++) {
//遍历本组的所有元素
for (int j = i - d; j >= 0; j -= d) {
if (arr[j] > arr[j + d]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println("第"+k+"次:"+Arrays.toString(arr));
k++;
}
}
插入排序-希尔排序
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 插入排序基本思想:每步将一个待排序的对象,按其值的大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插...
- 给定数组 int[] arr = {3,6,8,4,7,5,9,1,2,0};使用至少三种方法对数组arr排序(作...
- 实现两种初级的排序算法: 选择排序思路 首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果...