希尔排序

mac2022-06-30  107

public class ShellSort { public static void print(int[] arr) { for (int i : arr) { System.out.print(i + " "); } System.out.println(); } public static void shellSort(int a[], int n) { int i, j, d,temp,k; // 步长 for (d = n / 2; d > 0; d /= 2) { // 直接插入排序 for (i = 0; i < d; i++) { for (j = i + d; j < n; j += d) { if (a[j] < a[j - d]) { temp = a[j]; k = j - d; while (k >= 0 && a[k] > temp) { a[k + d] = a[k]; k -= d; } a[k + d] = temp; } } } } } public static void main(String[] args) { int arr[] = { 43, 37, 64, 90, 76, 11, 29, 43 }; shellSort(arr, arr.length); print(arr); } }

转载于:https://www.cnblogs.com/sunrise88/p/6680193.html

相关资源:C语言希尔排序
最新回复(0)