快速排序

Posted 日月的弯刀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序相关的知识,希望对你有一定的参考价值。

 


快速排序

对于一个int数组,请编写一个快速排序算法,对数组元素排序。

给定一个int数组A及数组的大小n,请返回排序后的数组。

测试样例:
[1,2,3,5,2,3],6
[1,2,2,3,3,5]
 
 
1
import java.util.*;
2

3
public class QuickSort {
4
    public int[] quickSort(int[] A, int n) {
5
        int left = 0;
6
        int right = n-1;
7
        return quickSort(A, left, right);
8
    }
9
    public int[] quickSort(int[] A, int left, int right){
10
        if(left < right){
11
            int i = left;
12
            int j = right;
13

14
            int target = A[i];
15

16
            while(i < j){
17
                while(j>i && A[j]>target){
18
                    j--;
19
                }
20
                if(j>i){
21
                    A[i] = A[j];
22
                    i++;
23
                }
24
                while(i<j && A[i]<target){
25
                    i++;
26
                }
27
                if(i<j){
28
                    A[j] = A[i];
29
                    j--;
30
                }
31
            }
32
            A[i] = target;
33
            quickSort(A, left, i-1);
34
            quickSort(A, i+1, right);
35

36
        }
37
        return A;
38
    }
39
}
 
 
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例

以上是关于快速排序的主要内容,如果未能解决你的问题,请参考以下文章

算法排序之堆排序

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段

如何使用sublime代码片段快速输入PHP头部版本声明

代码片段如何使用CSS来快速定义多彩光标

vs2003:快速片段工具