数据结构-希尔排序
2021/5/24 10:55:15
本文主要是介绍数据结构-希尔排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一. 介绍
希尔排序是把记录按下标的一定增量分组, 对每组使用直接插入排序算法排序; 随着增量逐渐减少, 每组包含
的关键词越来越多, 当增量减至 1 时, 整个文件恰被分成一组, 算法便终止
二. 思路
public class ShellSort { public static void main(String[] args) { int arr[] = {0, 8, 9, 1, 7, 2, 3, 5, 4, 6}; shellSort(arr); System.out.println(Arrays.toString(arr)); } private static void shellSort(int[] arr) { int temp = 0; for (int gap = arr.length / 2; gap > 0; gap /= 2) { for (int i = gap; i < arr.length; i++) { for (int j = i - gap; j >= 0; j -= gap) { if (arr[j] > arr[j + gap]) { temp = arr[j + gap]; arr[j + gap] = arr[j]; arr[j] = temp; } } } } // int temp = 0; // for (int i = 5; i < arr.length; i++) { // for (int j = i - 5; j >= 0; j -= 5) { // if (arr[j] > arr[j + 5]) { // temp = arr[j + 5]; // arr[j + 5] = arr[j]; // arr[j] = temp; // } // } // } // System.out.println(Arrays.toString(arr)); // for (int i = 2; i < arr.length; i++) { // for (int j = i - 2; j >= 0; j -= 2) { // if (arr[j] > arr[j + 2]) { // temp = arr[j + 2]; // arr[j + 2] = arr[j]; // arr[j] = temp; // } // } // } // System.out.println(Arrays.toString(arr)); // // for (int i = 1; i < arr.length; i++) { // for (int j = i - 1; j >= 0; j -= 2) { // if (arr[j] > arr[j + 1]) { // temp = arr[j + 1]; // arr[j + 1] = arr[j]; // arr[j] = temp; // } // } // } // System.out.println(Arrays.toString(arr)); } }
这篇关于数据结构-希尔排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求