希尔排序

来源:互联网 发布:淘宝上的好评怎样删除 编辑:程序博客网 时间:2024/06/05 09:09
public class Main {public static void main(String[] args) {int[] arr = {0, 2, 1, 5, 8, 2, 4, 3, 7, 6, 5};shellSort(arr, arr.length);for(int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}public static void shellSort(int[] arr, int n) {for(int gap = n / 2; gap >= 1; gap /= 2) {for(int i = 0; i < gap; i++) {for(int j = i + gap; j < n; j += gap) {if(arr[j] < arr[j-gap]) {int temp = arr[j];int k = j - gap;while(k >= 0 && arr[k] > temp) {arr[k + gap] = arr[k];k -= gap;}arr[k + gap] = temp;}}}}}}


1、gap 从 n/2 ,到1

2、相对有序时,直接插入法效率会很高

3、希尔排序时间复杂度n的1.3次方,不稳定

0 0
原创粉丝点击