排序算法汇总和相关问题
各类排序算法和相关的问题
花千树hss
这个作者很懒,什么都没留下…
展开
-
最大差值问题
问题描述:给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序(桶排序) 分析:题目要求了不能使用非基于比较的排序,但是我们可以借用桶排序的概念假设有N个数,设置N+1个桶,将数放到桶中,最大值放到最后一个桶,最小值放到第一个桶,故中间一定存在一个空桶(至少)设计空桶的目的是否定最大差值来之一个桶内,而不是说最大差值一定在空桶附近 public s...原创 2020-04-22 15:14:25 · 374 阅读 · 0 评论 -
比较器和java中的实现
比较器和java中的实现 在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。 通常对象之间的比较可以从两个方面去看: 第一个方面:对象的地址是否一样,也就是是否引用自同一个对象。这种方式可以直接使用“==“来完成。 第二个方面:以对象的某一个属性的角度去比较。 对最新的JDK8而言,有三种实现对象比较的方法: 一、覆写Object类的equals()方法; 二、继承C...原创 2020-04-22 13:42:50 · 97 阅读 · 0 评论 -
荷兰国旗问题
荷兰国旗问题问题描述思路代码实现 问题描述 给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。 要求额外空间复杂度O(1),时间复杂度O(N) 思路 从l到r遍历,使用三个指针,curr表示当前遍历到的位置;less和less前的数小于num;more和more后的数大于num;less和more中间的数等于num。初...原创 2020-04-21 09:26:36 · 71 阅读 · 0 评论 -
小和问题和逆序对问题
小和问题和逆序对问题小和问题解题思路代码逆序对问题解题思路代码 小和问题 在一个数组中, 每一个数左边比当前数小的数累加起来, 叫做这个数组的小和。 求一个数组的小和。 例子:[1,3,4,2,5] 1左边比1小的数, 没有; 3左边比3小的数,1; 4左边比4小的数,1、3; 2左边比2小的数,1; 5左边比5小的数,1、3、4、2; 所以小和为1+1+3+1+1+3+4+2=16 解题思路 使...原创 2020-04-20 20:18:33 · 258 阅读 · 0 评论 -
排序算法总结和java实现
排序算法总结和java实现0、排序算法说明0.1 排序的定义0.2 术语说明0.3 算法总结0.4 算法分类0.5 比较和非比较的区别1、冒泡排序1.1 算法描述1.2 动图演示1.3 代码实现1.4 算法分析2、选择排序2.1 算法描述2.2 动图演示2.3 代码实现2.4算法分析3、插入排序3.1 算法描述3.2 动图演示3.3 代码实现3.4 算法分析4、归并排序4.1 算法描述4.2 动图...原创 2020-04-20 19:54:47 · 170 阅读 · 0 评论 -
对数器
对数器对数器的概念对数器的实现 对数器的概念 对数器主要用于在没有OJ或OJ不提示出错的测试用例时测试自己写的方法是否正确并找出出错的测试用例。 0、 有一个你想要测的方法a 1、 实现一个绝对正确但是复杂度不好的方法b 2、 实现一个随机样本产生器 3、 实现比对的方法 4、 把方法a和方法b比对很多次来验证方法a是否正确 5、 如果有一个样本使得比对出错, 打印样本分析是哪个方法出错 6、当样...原创 2020-04-20 15:51:21 · 110 阅读 · 0 评论