用JAVA代码希尔排序
时间: 2023-11-06 08:08:20 浏览: 73
以下是用JAVA代码实现希尔排序的示例:
```
public class ShellSort {
public static void sort(int[] arr) {
int n = arr.length;
// 定义步长
for (int gap = n / 2; gap > 0; gap /= 2) {
// 对每个步长进行插入排序
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;
}
}
}
public static void main(String[] args) {
int[] arr = {9, 2, 5, 3, 1, 8, 6, 7, 0, 4};
sort(arr);
System.out.println(Arrays.toString(arr));
}
}
```
在这段代码中,我们首先定义了步长 `gap`,然后对每个步长进行插入排序,最终得到一个有序数组。在每个步长下,我们使用类似于插入排序的算法,将每个元素插入到其正确的位置。当步长为1时,我们完成了整个排序过程。
阅读全文