package com.refe.algorithm;
import org.junit.Test;
public class FastSort {
@Test
public void test() {
int[] array = { 3, 8, 9, 5, 1, 2, 4, 7 };
sort(array);
}
public void sort(int[] array) {
qsort(array, 0, array.length - 1);
print(array);
}
private void print(int[] array) {
for (int i : array)
System.out.print(i);
}
private void qsort(int[] array, int low, int high) {
if (low < high) {
int i = low, j = high;
int piv = array[low];
// Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换
while (i < j) {
while (i < j && array[j] >= piv)
j--;
if (i < j)
array[i++] = array[j];
while (i < j && array[i] < piv)
i++;
if (i < j)
array[j--] = array[i];
}
array[i] = piv;
qsort(array, low, i - 1);
qsort(array, i + 1, high);
}
}
}
快速排序
最新推荐文章于 2025-05-20 19:46:55 发布