import java.util.Arrays;
/**
* @author lixin
* @date 2019/3/16 - 11:34
*/
public class ShellSort {
public static void main(String[] args) {
int[] arr = new int[]{1, 3, 4, 5, 2, 7, 6, 4, 5};
shellSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void shellSort(int[] arr) {
int temp = 0;
//遍历所有的步长
for (int d = arr.length / 2; d > 0; d /= 2) {
//遍历所有元素
for (int i = d; i < arr.length; i++) {
//遍历本组中所有的元素
for (int j = i - d; j >= 0; j -= d) {
//如果当前元素大于加上步长后的那个元素
if (arr[j] > arr[j + d]) {
temp = arr[j];
arr[j] = arr[j + d];
arr[j + d] = temp;
}
}
}
}
}
}
数据结构与算法基础-希尔排序(Java)
最新推荐文章于 2023-09-17 11:02:47 发布