给定你一个长度为 nn 的整数数列。
请你使用快速排序对这个数列按照从小到大进行排序。
并将排好序的数列按顺序输出。
输入格式
输入共两行,第一行包含整数 nn。
第二行包含 nn 个整数(所有整数均在 1∼1091∼109 范围内),表示整个数列。
输出格式
输出共一行,包含 nn 个整数,表示排好序的数列。
数据范围
1≤n≤1000001≤n≤100000
输入样例:
5
3 1 2 4 5
输出样例:
1 2 3 4 5
代码:
//package com.company;
import java.io.*;
import java.util.*;
/**
* @author skyzo——代师!!!
*/
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n;
n= sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i]= sc.nextInt();
}
quickSort(arr,0,n-1);
for (int i = 0; i < n; i++) {
System.out.print(arr[i]+" ");
}
}
public static void quickSort(int[] q, int l, int r){
if (l >= r) {
return;
}
int i = l - 1, j = r + 1, x = q[l + r >> 1];
while (i < j) {
do {
i++;
}while (q[i]<x);
do {
j--;
}while (q[j]>x);
if (i < j) {
int lzwdsg;
//大帅哥 中间变量
lzwdsg=q[i];
q[i]=q[j];
q[j]=lzwdsg;
}
}
quickSort(q, l, j); quickSort(q, j + 1, r);
}
}
55秒前 Accepted 5871 ms Java 普通 1分钟前 Accepted 2505 ms Python3 普通 2分钟前 Accepted 1727 ms Python3 普通 2天前 Accepted 5779 ms Java 普通 9个月前 Accepted 372 ms C++ 普通
Java好慢呀!