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; } } 三向切分快排,不知道好不好使
点赞 评论

相关推荐

LazyBreeze:项目尽量体现你对技术的理解和深度,不是说把中间件用一下就完事了,你项目里面提到集群和分布式,你真在服务器上部署过吗,感觉太假了,第二个项目说自己用了微服务的什么组件,只是用了没有自己的思考,很难让面试官注意到你的简历。针对某几个技术点自己多思考一下,考虑一下有没有别的替代方案,可以写一下,即使没有真的实现
点赞 评论 收藏
分享
Vincent777...:实习经历可以考虑放上去,对于软件使用方面可以细化一些,比如调整为:熟悉基于LSDYNA的瞬态动力学仿真分析,熟悉基于WORKBENCH的结构拓扑优化
我的简历长这样
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务