AcWing 785. 快速排序
原题链接
简单
作者:
jontyzhou
,
2021-04-12 14:49:59
,
所有人可见
,
阅读 169
Java快速排序
import java.util.Scanner;
public class quickSort {
// 根据数组中的两个下标交换位置
public static void swap(int[] arr,int i,int j){
int tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
public static void quick_sort(int[] arr, int left, int right) {
if (left >= right) return; // 递归出口
int pivot = arr[left], i = left, j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) --j;
while (i < j && arr[i] <= pivot) ++i;
if (i < j) swap(arr,i,j);
}
// 交换 基准值 和 arr[i]
swap(arr,left,i);
quick_sort(arr, left, i-1);
quick_sort(arr, i + 1, right);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
quick_sort(arr, 0, n - 1);
for (int i = 0; i < n; i++) {
System.out.print(arr[i]);
}
}
}
将swap写成函数竟然超时了