要求: 对 {49, 38, 65, 97, 76, 13, 27, 101, 34, 119, 1} 进行从小到大的排序,要求使用希尔排序法。写出完整的Java代码
时间: 2023-10-04 14:08:49 浏览: 76
希尔排序java代码
好的,以下是使用希尔排序法对数组进行排序的Java代码:
```java
public class ShellSort {
public static void main(String[] args) {
int[] arr = {49, 38, 65, 97, 76, 13, 27, 101, 34, 119, 1};
shellSort(arr);
System.out.println("排序后的数组为:");
for (int i : arr) {
System.out.print(i + " ");
}
}
public static void shellSort(int[] arr) {
int len = arr.length;
int gap = len / 2; // 初始增量
while (gap > 0) {
// 插入排序
for (int i = gap; i < len; i++) {
int j = i;
int temp = arr[j];
if (arr[j] < arr[j - gap]) {
while (j - gap >= 0 && temp < arr[j - gap]) {
arr[j] = arr[j - gap];
j -= gap;
}
arr[j] = temp;
}
}
gap /= 2; // 减小增量
}
}
}
```
输出结果为:
```
排序后的数组为:
1 13 27 34 38 49 65 76 97 101 119
```
希望能够帮到你!
阅读全文