关注
import java.util.Scanner;
public class Solution {
/**
* @param args
*/
static int sum = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int n = in.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
int lo = 0;
int hi = n - 1;
quick(arr, lo, hi);
System.out.println(sum);
}
}
public static void quick(int[] arr, int lo, int hi) {
if (hi <= lo) {
return;
}
int lt = lo;
int i = lo + 1;
int gt = hi;
int tmp = arr[lo];
while (i <= gt) {
if (arr[i] < tmp) {
swap(arr, lt++, i++);
} else if (arr[i] > tmp) {
swap(arr, i, gt--);
} else {
i++;
}
}
quick(arr, lo, lt - 1);
quick(arr, gt + 1, hi);
}
public static void swap(int[] a, int i, int j) {
if (a[i] != a[j])
sum++;
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
} 三向切分快排,不知道好不好使
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
11628次浏览 239人参与
# 穿越回高考你还会选现在的专业吗 #
7534次浏览 126人参与
# 实习吐槽大会 #
14395次浏览 63人参与
# 我的租房踩坑经历 #
4153次浏览 86人参与
# 晒一晒你的工位 #
79405次浏览 277人参与
# TP-LINK工作体验 #
46835次浏览 827人参与
# 入职第三天,晒晒你的工位 #
31326次浏览 154人参与
# 你的办公桌上都有什么? #
6658次浏览 57人参与
# 高学历就一定能找到好工作吗? #
47294次浏览 584人参与
# 工作压力大怎么缓解 #
78374次浏览 932人参与
# 实习中的菜狗时刻 #
361550次浏览 3280人参与
# 今年形式下双非本找得到工作吗 #
138451次浏览 1055人参与
# 机械制造2023笔面经 #
115955次浏览 747人参与
# 电网笔面经互助 #
33291次浏览 331人参与
# Offer比较,求稳定还是求发展 #
52420次浏览 248人参与
# 你最满意的offer薪资是哪家公司? #
25454次浏览 130人参与
# 24届的你们现状如何了? #
69672次浏览 399人参与
# 你投递的公司有几家约面了? #
103929次浏览 745人参与
# 薪资一样,你会选择去大厂还是小公司 #
19336次浏览 116人参与
# 选完offer后,你后悔学机械吗? #
28843次浏览 158人参与