希尔排序与快速排序

public static void shellSort() { int h = 1; while (randomNumbers.length > 3 * h + 1) { h = 3 * h + 1; } while (h >= 1) { for (int i = 0; i < h; i++) { // 内部就使用插入排序 for (int j = i, k = j + h; k < randomNumbers.length; j += h, k = j + h) { if (randomNumbers[j] > randomNumbers[j + h]) { for (int k2 = j + h; k2 >= h && randomNumbers[k2 – h] > randomNumbers[k2]; k2–) { int temp = randomNumbers[k2]; randomNumbers[k2] = randomNumbers[k2 – h]; randomNumbers[k2 – h] = temp; } } } } h = (h – 1) / 3; } } public static void quickSort() { quickSort(0, randomNumbers.length – 1); } public static void quickSort(int left, int right) { if (left >= right) { return; } else { int partition = partitionIt(left, right); quickSort(left, partition – 1); quickSort(partition + 1, right); } } public static int partitionIt(int left, int right) { int partition = right; for (int i = left; i < right; i++) { if (i > partition && randomNumbers[i] < randomNumbers[partition]) { int temp = randomNumbers[partition]; randomNumbers[partition] = randomNumbers[i]; randomNumbers[i] = temp; temp = partition; partition = i; i = temp; } else if (i < partition && randomNumbers[i] > randomNumbers[partition]) { int temp = randomNumbers[partition]; randomNumbers[partition] = randomNumbers[i]; randomNumbers[i] = temp; partition = i; } } return partition; }

,虚拟主机,网站空间,虚拟主机依赖别人的人等于折断了自己的翅膀,永远也体会不到飞翔的快乐。

希尔排序与快速排序

相关文章:

你感兴趣的文章:

标签云: