java 实现希尔排序算法
时间: 2023-11-30 19:40:51 浏览: 84
以下是Java实现希尔排序算法的示例代码:
```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;
}
}
}
}
```
在这个示例中,我们首先定义了一个`sort`方法,该方法接受一个整数数组作为参数,并使用希尔排序算法对其进行排序。在`sort`方法中,我们首先获取数组的长度`n`,然后使用一个循环来遍历所有的增量`gap`,初始值为`n/2`,每次循环都将`gap`除以2,直到`gap`为0为止。在每次循环中,我们使用另一个循环来遍历从`gap`开始的所有元素,并将其插入到正确的位置。具体来说,我们首先将当前元素的值存储在一个临时变量`temp`中,然后使用一个`while`循环来将比当前元素大的元素向右移动,直到找到正确的位置。最后,我们将当前元素插入到正确的位置。
阅读全文