这个问题实际上就是先找一个螺母,用快排在螺钉里找到匹配的。同时找一个螺钉,在螺母里找一个相同的。

如此反复。

public class a4 {static int n = 1,temp;static int[] a = { 4,5,2,6,1,7,8,9,3 };static int[] b = { 6,2,1,8,9,7,4,5,3 };  public static void main(String[] args) {Sort(a, b, 0, a.length - 1);System.out.println(Arrays.toString(a));System.out.println(Arrays.toString(b));}public static void Sort(int[] a, int[] b, int left, int right) { int t=0;if(left<right) {int temp=a[left];           // 用a来区分bint i=left,j=right;while(i<j) {while (i<j&&b[i]<temp)  i++;while (i<j&&b[j]>temp)  j--;if (i<j) swap2(i,j,b);}swap2(i,left,b);System.out.println("第"+n+"次操作 b:  "+Arrays.toString(b));temp=b[left+1];     // 用b来区分ai=left+1;j=right;while(i<j) {while (i<j&&a[i]<temp) i++;while (i<j&&a[j]>temp)  j--;if (i<j) swap1(i,j,a);}swap1(left+1,i,a);System.out.println("第"+n+"次操作 a:  "+Arrays.toString(a));n++;Sort(a,b,left+2,i);Sort(a,b,i+1,right);}}   public static void swap1(int m,int n,int[] a) { temp=a[m];a[m]=a[n];a[n]=temp;   }public static void swap2(int m,int n,int[] b) { temp=b[m];b[m]=b[n];b[n]=temp;  }
}

螺母和螺帽问题的Java解法(快排O(nlogn))相关推荐

  1. java三路快排,java二路快排很慢

    老师,以下是我二路快排的java代码 public class quickSortTwoway { public quickSortTwoway() {}; public static void qu ...

  2. Java 单边快排 与 双边快排

    目录 一.单边快排 二.双边快排 一.单边快排 代码:已是该算法的最优情况 package com.wxl;import java.lang.reflect.Array; import java.ut ...

  3. Java实现快排(图文讲解)

    文章目录 Java实现快速排序 快速排序原理 快速排序一次划分图文演示过程 整个快速排序的过程 具体Java代码实现 简结快速排序的性能 Java实现快速排序 冲鸭,装上涡轮增鸭,开始学习快速排序算法 ...

  4. java实现快排算法

    前面我详细讲解了快排算法,现在我们用java来实现 直接上代码 package ttt;public class kuaisupaixu {public static int[] quickSort( ...

  5. 【LeetCode笔记】215. 数组中的第K个最大元素(Java、快排、堆排、并发快排)

    文章目录 题目描述 思路 & 代码 快排 基于 Fork / Join 的并发快排 针对 topK 的快排优化 堆排 基本堆排 结合题目的堆排 二刷 题目描述 大名鼎鼎的TOP K,主要考察排 ...

  6. 快排算法的Java实现

    快排算法的Java实现 快排的核心是找到在无序数组中找到一个数,然后将比他小的数字放在他的左边,比他大的数字放在他的右边.然后递归的对左右两边进行继续排序,直到完成,下面看算法的实现: public ...

  7. [剑指offer]面试题第[45]题[JAVA][把数组排成最小的数][快排][ Comparator][PriorityQueue]

    [问题描述][中等] [解答思路] 1. 快速排序 时间复杂度:O(N^2) 空间复杂度:O(1) class Solution {public String minNumber(int[] nums ...

  8. [Leedcode][第215题][JAVA][数组中的第K个最大元素][快排][优先队列]

    [问题描述][中等] 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素.示例 1:输入: [3,2,1,5,6,4] 和 k ...

  9. 将1,2,…,9 共 9 个数分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成 1 : 2 : 3 的比例,试求出所有满足条件的 3个三位数---Java解法

    洛谷三连击---Java解法 题目:将1,2,-,9 共 9 个数分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成 1 : 2 : 3 的比例,试求出所有满足条件的 3个三位数. 这一题 ...

最新文章

  1. 深圳高一学生,夺冠国际物理奥赛
  2. Django源码分析6:auth认证及登陆保持
  3. DNA repair - HDU 2457(自动机+dp)
  4. 《图说VR入门》——DeepoonVR的大鹏(陀螺仪)枪
  5. python爬虫高级项目管理师培训学校_推荐一条高效的Python爬虫学习路径!
  6. opencv感兴趣通道COI的使用
  7. python paramiko长连接_【Python】 SSH连接的paramiko
  8. NSIS:判断并安装.NET Framework 4 的例子
  9. [转]详细解说:简单CSS3实现炫酷读者墙
  10. 《逆袭进大厂》第二弹之C++进阶篇59问59答(超硬核干货)
  11. 红蓝对抗之win10 权限提升
  12. 无稽之谈--关于我自己的程序世界
  13. 修复windows系统引导
  14. footnote latex
  15. PyImport_ImportModule
  16. ajax asp后台获取不到post数据,asp.net webapi [FromBody]string 获取不到ajax post的数据的解决方法...
  17. mysql list dbs_php mysql_list_dbs()函数用法示例
  18. 教你如何用C++快速生成1000万个随机数
  19. 微软亚洲研究院“牵手”莲花山视觉研究院
  20. Akita与脉冲云的关系

热门文章

  1. 3、UML统一建模语言是什么?
  2. ASUS华硕笔记本电脑天选2-FX506HCB11400原装出厂Windows10系统原厂OEM系统
  3. 多影响因素下,到底咋归因?!
  4. 网络安全自学篇之Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
  5. 阳阳买苹果,每个苹果0.8元,阳阳第一天买两个,第二天开始每天买前一天的两倍,直到购买的苹果个数为不超过100的最大值,编程求阳阳每天平均花多少钱?
  6. Eclipse英文版安装简体中文语言包
  7. 基于STM32的智能车灯系统
  8. 苹果为什么要禁止 JSPatch 等热更新技术?
  9. Ubuntu 网络调试助手mNetAssist安装
  10. Xshell 6 Xftp 6安装与使用教程