QuickSort与QuickSelect 的原理与java实现
Quicksort
QuickSort 可以说是在面试当中最容易遇到的排序算法了,在最好的情况下时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn) 最坏的情况下是 O ( n 2 ) O(n^2) O(n2)。
快排的思想,选取一个基准值pivot,并通过遍历数组的方式将数组分为两个部分,小于基准值的与大于基准值的。
再对两个数组进行递归运算,直到最后两个数组内都只有一个元素时停止。
java实现:
class QuickSort{
public static void quickSort(int[] nums){
if(nums == null || nums.length == 0){
return;
}
///检测数组是否符合条件
helper(nums,0,nums.length-1);
}
private static void helper