学习路线:
第一章 基础算法
一、排序
1.快排
2.归并
1.快速排序
题目:785.快速排序
c题解
java题解
import java.util.Scanner;
public class QuickSort {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = 1000000;
int[] q = new int[N + 1];
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
q[i] = sc.nextInt();
}
quick_sort(q, 0, n - 1);
for (int i = 1; i <= n; i++) {
System.out.printf("%d ", q[i]);
}
}
public static void quick_sort(int q[], int l, int r) {
if (l >= r) return;
int x = q[l], i = l - 1, j = r + 1;
while (i < j) {
do i++; while (q[i] < x);
do j--; while (q[j] > x);
if (i < j) {
int t = q[i];
q[i] = q[j];
q[j] = t;
}
}
quick_sort(q, l, j);
quick_sort(q, j + 1, r);
}
}
2.归并排序
题目:787.归并排序
c题解