public static void main(String[] args) { int[] nums = {25,84,21,47,15,27,68,35,20}; mQuickSort(nums,0,nums.length-1); } public static void mQuickSort(int[] arr, int start, int end) { if (start < end) { int split = mPartition(arr,start,end); mQuickSort(arr,start,split-1); mQuickSort(arr,split+1,end); } } public static int mPartition(int[] arr, int start, int end) { int i = start+1; int j = end; while (i <= j) { // 从后往前找到第一个比arr[start]小的元素 // 注意,这里不能是 j >= start,否则 j 的值可能为 start-1,最后的swap会出现错误! while (j > start && arr[j] >= arr[start]) j--; // 从前往后找到第一个比arr[start]大的元素 while (i <= end && arr[i] <= arr[start]) i++; if (i < j) { swap(arr,i,j); } } swap(arr,start,j); System.out.println(Arrays.toString(arr)); return j; }
点赞 评论

相关推荐

12-15 18:00
巨人网络_招聘
投递巨人网络等公司6个岗位
点赞 评论 收藏
分享
11-23 15:33
已编辑
门头沟学院 Java
CUTMR:换账号试试重启推荐算法,我换账号之后回复率还不错,约莫有个20%左右的消息回复率,前几页、主动招呼的HR也开始符合我期望薪资,此前的大号从招呼、回复、前几页的岗位薪资在涨幅30%+以上 用着用着聊着聊着就变成-20%,而且我开通会员之后直接0面试
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务