【牛客网】直通bat-面试算法精品课_第2章 排序 2.6 快速排序练习题(JAVA版)
2017-09-28 09:17
357 查看
对于一个int数组,请编写一个快速排序算法,对数组元素排序。
给定一个int数组A及数组的大小n,请返回排序后的数组。
测试样例:
AC代码:
给定一个int数组A及数组的大小n,请返回排序后的数组。
测试样例:
[1,2,3,5,2,3],6
[1,2,2,3,3,5]
AC代码:
import java.util.*; public class QuickSort { public int[] quickSort(int[] A, int n) { // write code here quicksort(A, 0, n-1); return A; } public void quicksort(int[] A, int left, int right) { if (left >= right) return; int j = partition(A, left, right); quicksort(A, left, j-1); quicksort(A, j+1, right); } public int partition(int[] A, int left, int right) { int len = right - left + 1; Random rand = new Random(); int pivot = left + rand.nextInt(len); exchange(A, pivot, right); int index = left; for(int k=left; k<left+(len-1); k++){ if (A[k] <= A[right]) { exchange(A, index, k); index ++; } } exchange(A, index, right); return index; } public void exchange(int[] A, int i, int j) { int temp = A[i]; A[i] = A[j]; A[j] = temp; } }
相关文章推荐
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.10 计数排序练习题(JAVA版)
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.13 小范围排序练习题(JAVA版)
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.8 希尔排序练习题(JAVA版)
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.10 基数排序练习题(JAVA版)
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.2 冒泡排序练习题(JAVA版)
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.4 插入排序练习题(JAVA版)
- 牛客精品课程《直通BAT面试算法精讲课》[备忘]
- 牛客网-直通BAT面试算法精品课购买优惠码
- 直通BAT面试算法---智力题1-涂色练习题
- 牛客网(直通BAT面试算法班) 第二章,排序下,Day3
- 直通BAT-面试算法精品课
- 优惠码:直通BAT面试算法精品课-牛客网
- 牛客网(直通BAT面试算法班) 第二章,排序上,Day2
- 牛客网优惠码-直通BAT面试算法精品课购买
- 算法研究之快速排序java版
- 【LeetCode-面试算法经典-Java实现】【075-Sort Colors (颜色排序)】
- java 快速排序 算法
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排
- 直通BAT面试算法
- 小白学算法2.6——快速排序