关注
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;
}
} 三向切分快排,不知道好不好使
查看原帖
点赞 评论
牛客热帖
更多
正在热议
更多
# 实习简历求拷打 #
5599次浏览 68人参与
# 你会为了工作牺牲生活吗? #
66722次浏览 454人参与
# 秋招被挂春招仍然能投的公司 #
4941次浏览 81人参与
# 考研失败就一定是坏事吗? #
198877次浏览 1355人参与
# 什么是优秀的实习经历 #
6732次浏览 191人参与
# 为了求职,我做过的疯狂伪装 #
75399次浏览 763人参与
# mt对你说过最有启发的一句话 #
29797次浏览 365人参与
# 牛友们,签完三方你在忙什么? #
128638次浏览 981人参与
# 摸鱼被leader发现了怎么办 #
96477次浏览 619人参与
# 巨人网络工作体验 #
71069次浏览 502人参与
# 你今年的保底offer是哪家 #
154498次浏览 670人参与
# 秋招特别不鸣谢 #
13566次浏览 169人参与
# 你投递的公司有几家约面了? #
153789次浏览 990人参与
# 第一次面试 #
1035447次浏览 13679人参与
# 今年秋招你收到了多少封邮件? #
16603次浏览 216人参与
# 工作中遇到的歹人 #
24535次浏览 286人参与
# 选实习,你更看重哪方面? #
11495次浏览 202人参与
# 携程求职进展汇总 #
837909次浏览 5500人参与
# 滴!实习打卡 #
749096次浏览 6762人参与
# 毕业论文进行时 #
20441次浏览 128人参与

