希尔排序java代码输出每次的排序结果
时间: 2023-07-21 11:41:08 浏览: 87
好的,以下是希尔排序的Java代码,每次排序后都会输出当前的排序结果:
```java
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 temp = arr[i];
int j = i;
while (j >= gap && arr[j - gap] > temp) {
arr[j] = arr[j - gap];
j -= gap;
}
arr[j] = temp;
}
System.out.println(Arrays.toString(arr)); // 输出排序结果
gap /= 2;
}
}
```
在上面的代码中,我们加入了一个 `System.out.println(Arrays.toString(arr))` 语句,每次排序后都会输出当前的排序结果,以方便观察排序的过程。
相关问题
希尔排序Java代码
以下是希尔排序的Java代码:
```
package totoSort;
import java.util.Arrays;
public class ShellSort {
public static void main(String[] args) {
int[] arrays = new int[] {1,5,2,3,6,9,4,0,1};
for(int gap = arrays.length / 2; gap > 0; gap /= 2) {
for(int i = gap; i < arrays.length; i++) {
for(int j = i - gap; j >= 0; j -= gap) {
if(arrays[j] > arrays[j + gap]) {
int temp = arrays[j];
arrays[j] = arrays[j + gap];
arrays[j + gap] = temp;
}
}
}
}
System.out.println(Arrays.toString(arrays));
}
}
```
该代码实现了希尔排序的核心思想,即通过不断缩小增量来进行排序。具体实现方式是通过循环来不断缩小增量,然后再进行插入排序。在插入排序中,每次比较的元素间隔为增量,而不是1。
希尔排序java代码
希尔排序(Shell Sort)是插入排序的一种高效率的改进版本,它的基本思想是将原来要排序的数据序列分成若干个子序列,每个子序列进行插入排序,待整个序列中的元素基本有序时,再对全体元素进行一次插入排序。
以下是希尔排序的Java代码实现:
```
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 temp = arr[i];
int j = i - gap;
while (j >= 0 && arr[j] > temp) {
arr[j + gap] = arr[j];
j -= gap;
}
arr[j + gap] = temp;
}
gap /= 2;
}
}
```
阅读全文