package sort; public class QuickSortAll { /* * 快排,递归,选择第一个元素当做指针 */ public static void quickSort0(int[] nums, int l, int r){ int i=l, j=r; int x = nums[i]; while(i>1]; //选择监督哨 while(i<=j){ while(nums[i] < x) i++; while(x < nums[j]) j--; if(i<=j){ int t = nums[i]; nums[i] = nums[j]; nums[j] = t; i++; j--; } } if(l nums[y]) y--; nums[x] = nums[y]; while(x < y && nums[x] >= key) x++; nums[y] = nums[x]; } nums[x] = key; if(x == k) return nums[k]; else if(x > k) r = x - 1; else l = x + 1; } return nums[k]; } /* * 快速选择: 选择中间元素作为监督哨 */ public static int findKthLargest1(int[] nums, int k){ k--; int l=0, r= nums.length - 1; while(l>1]; while(ix) i++; while(x>nums[j]) j--; if(i<=j){ int t=nums[i]; nums[i] = nums[j]; nums[j] = t; i++; j--; } } if((l>1]; while(i<=j){ while(nums[i]>x) i++; while(x>nums[j]) j--; if(i<=j){ int t = nums[i]; nums[i]=nums[j]; nums[j]=t; i++; j--; } } if((l