螺母和螺帽问题的Java解法(快排O(nlogn))
这个问题实际上就是先找一个螺母,用快排在螺钉里找到匹配的。同时找一个螺钉,在螺母里找一个相同的。
如此反复。
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))相关推荐
- java三路快排,java二路快排很慢
老师,以下是我二路快排的java代码 public class quickSortTwoway { public quickSortTwoway() {}; public static void qu ...
- Java 单边快排 与 双边快排
目录 一.单边快排 二.双边快排 一.单边快排 代码:已是该算法的最优情况 package com.wxl;import java.lang.reflect.Array; import java.ut ...
- Java实现快排(图文讲解)
文章目录 Java实现快速排序 快速排序原理 快速排序一次划分图文演示过程 整个快速排序的过程 具体Java代码实现 简结快速排序的性能 Java实现快速排序 冲鸭,装上涡轮增鸭,开始学习快速排序算法 ...
- java实现快排算法
前面我详细讲解了快排算法,现在我们用java来实现 直接上代码 package ttt;public class kuaisupaixu {public static int[] quickSort( ...
- 【LeetCode笔记】215. 数组中的第K个最大元素(Java、快排、堆排、并发快排)
文章目录 题目描述 思路 & 代码 快排 基于 Fork / Join 的并发快排 针对 topK 的快排优化 堆排 基本堆排 结合题目的堆排 二刷 题目描述 大名鼎鼎的TOP K,主要考察排 ...
- 快排算法的Java实现
快排算法的Java实现 快排的核心是找到在无序数组中找到一个数,然后将比他小的数字放在他的左边,比他大的数字放在他的右边.然后递归的对左右两边进行继续排序,直到完成,下面看算法的实现: public ...
- [剑指offer]面试题第[45]题[JAVA][把数组排成最小的数][快排][ Comparator][PriorityQueue]
[问题描述][中等] [解答思路] 1. 快速排序 时间复杂度:O(N^2) 空间复杂度:O(1) class Solution {public String minNumber(int[] nums ...
- [Leedcode][第215题][JAVA][数组中的第K个最大元素][快排][优先队列]
[问题描述][中等] 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素.示例 1:输入: [3,2,1,5,6,4] 和 k ...
- 将1,2,…,9 共 9 个数分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成 1 : 2 : 3 的比例,试求出所有满足条件的 3个三位数---Java解法
洛谷三连击---Java解法 题目:将1,2,-,9 共 9 个数分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成 1 : 2 : 3 的比例,试求出所有满足条件的 3个三位数. 这一题 ...
最新文章
- 深圳高一学生,夺冠国际物理奥赛
- Django源码分析6:auth认证及登陆保持
- DNA repair - HDU 2457(自动机+dp)
- 《图说VR入门》——DeepoonVR的大鹏(陀螺仪)枪
- python爬虫高级项目管理师培训学校_推荐一条高效的Python爬虫学习路径!
- opencv感兴趣通道COI的使用
- python paramiko长连接_【Python】 SSH连接的paramiko
- NSIS:判断并安装.NET Framework 4 的例子
- [转]详细解说:简单CSS3实现炫酷读者墙
- 《逆袭进大厂》第二弹之C++进阶篇59问59答(超硬核干货)
- 红蓝对抗之win10 权限提升
- 无稽之谈--关于我自己的程序世界
- 修复windows系统引导
- footnote latex
- PyImport_ImportModule
- ajax asp后台获取不到post数据,asp.net webapi [FromBody]string 获取不到ajax post的数据的解决方法...
- mysql list dbs_php mysql_list_dbs()函数用法示例
- 教你如何用C++快速生成1000万个随机数
- 微软亚洲研究院“牵手”莲花山视觉研究院
- Akita与脉冲云的关系
热门文章
- 3、UML统一建模语言是什么?
- ASUS华硕笔记本电脑天选2-FX506HCB11400原装出厂Windows10系统原厂OEM系统
- 多影响因素下,到底咋归因?!
- 网络安全自学篇之Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
- 阳阳买苹果,每个苹果0.8元,阳阳第一天买两个,第二天开始每天买前一天的两倍,直到购买的苹果个数为不超过100的最大值,编程求阳阳每天平均花多少钱?
- Eclipse英文版安装简体中文语言包
- 基于STM32的智能车灯系统
- 苹果为什么要禁止 JSPatch 等热更新技术?
- Ubuntu 网络调试助手mNetAssist安装
- Xshell 6 Xftp 6安装与使用教程