经典算法,快速排序:
/**
* 快速排序
*
* @author yunmo.hl
* @version $Id: QuickSort.java, v 0.1 2018年04月14日 16:19 yunmo.hl Exp $
*/
public class QuickSort {
public static int subSort(int[] origin, int low, int high) {
int splitNum = origin[low];
while (low < high) {
//从后往前
while (origin[high] >= splitNum && high > low) {
high--;
}
origin[low] = origin[high];
//从前往后
while (origin[low] <= splitNum && high > low) {
low++;
}
origin[high] = origin[low];
}
origin[high] = splitNum;
return high;
}
/**
* 快速排序
* @param array
* @param lo
* @param hi
*/
public static void quickSort(int[] array, int lo, int hi) {
if (lo >= hi) {
return;
}
//进行第一轮排序获取分割点
int index = subSort(array, lo, hi);
//排序前半部分
quickSort(array, lo, index - 1);
//排序后半部分
quickSort(array, index + 1, hi);
}
public static void main(String[] args) {
int[] origin = { 1, 53, 2, 23, 45, 12, 56, 32, 100 };
quickSort(origin, 0, 8);
for (int i = 0; i < 9; i++) {
System.out.println(origin[i]);
}
}
}
本文详细介绍了经典算法快速排序的实现原理及过程。通过递归方式选取基准元素并进行分区操作,实现数组的有效排序。示例代码展示了如何使用快速排序对整型数组进行排序。
18万+

被折叠的 条评论
为什么被折叠?



