算法-排序
文章平均质量分 70
xushiyu1996818
这个作者很懒,什么都没留下…
展开
-
剑指offer-30-最小的k个数-java
题目及测试package sword030;/* 题目:输入n个整数,找出其中最小的k个数。 * 例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。*/import java.util.List;public class main { public static void main(String[] args) { int[][] testTable = {{1,3,4,2,2,3},{1,1,1,1,2}}; int[] test原创 2020-12-12 11:28:01 · 143 阅读 · 0 评论 -
双层桶总结
参考 https://blog.csdn.net/zhongguoren666/article/details/7094759什么是双层桶事实上,与其说双层桶划分是一种数据结构,不如说它是一种算法设计思想。面对一堆大量的数据我们无法处理的时候,我们可以将其分成一个个小的单元,然后根据一定的策略来处理这些小单元,从而达到目的。适用范围第k大,中位数,不重复或重复的数字基本原理及要点因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后在一个可以接受的范围内进..原创 2020-06-21 17:23:37 · 331 阅读 · 0 评论 -
大数据量,海量数据 处理方法总结
目录Bloom filterHashingbit-map堆双层桶划分分而治之/hash映射 + hash统计 + 堆/快速/归并排序数据库索引倒排索引(后缀树)trie树外排序分布式处理 mapreduce经典问题分析参考了 https://blog.csdn.net/zuiaituantuan/article/details/5900981https://blog.csdn.net/hzp666/article/details/70236606..原创 2020-06-19 17:22:29 · 1731 阅读 · 0 评论 -
大数据Top K 总结
目录TOP k 问题1亿个数字中找出最大或最小的前100个数字方法1:全部排序方法2:局部淘汰法插入容器后的操作局部淘汰法的去重方法3:分治法分治-快排划分分治-排序分治-堆排序合并结果方法4:Hash法BitMap计数排序方法5:最小堆实际场景(1)单机+单核+足够大内存(2)单机+多核+足够大内存(3)单机+单核+受限内存(4)多机+受限内存HadoopTOP k 问题在大规模数据处理中,经常会遇到的一类问题:在原创 2020-06-17 16:27:04 · 1942 阅读 · 0 评论 -
leetcode-324-摆动排序 II-java
题目及测试package pid324;/* 摆动排序 II给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。示例 1:输入: nums = [1, 5, 1, 1, 6, 4]输出: 一个可能的答案是 [1, 4, 1, 5, 1, 6]示例 2:输入: num...原创 2020-01-07 14:27:30 · 659 阅读 · 0 评论 -
BitMap算法总结-java版
目录简介基本思想为什么要有BitMapBitMap的映射求十进制数对应在数组a中的下标求十进制数对应数组元素a[i]在0-31中的位m使得对应第m个bit位为1使得对应第m个bit位为0java实现内部元素加入查找删除展示测试完整代码复杂度时间空间算法评价优点缺点应用BloomFilter和BItMap...原创 2019-05-06 16:45:37 · 2597 阅读 · 0 评论 -
leetcode-56-合并区间(merge intervals)-java
题目合并区间给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被...原创 2019-01-08 13:50:39 · 513 阅读 · 0 评论 -
leetcode-215-数组中的第K个最大元素 (kth largest element in an array)-java
题目及测试package pid215;/*数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 ...原创 2018-12-11 10:25:57 · 607 阅读 · 0 评论 -
外部排序算法总结
目录多路归并排序基本思想两两归并排序多路归并排序胜者树败者树败者树的建立与调整败者树的java代码败者树的效率 我们一般提到排序都是指内排序,比如快速排序,堆排序,归并排序等,所谓内排序就是可以在内存中完成的排序。RAM的访问速度大约是磁盘的25万倍,我们当然希望如果可以的话都是内排来完成。但对于大数据集来说,内存是远远不够的,这时候就涉及到外排序的知识了...原创 2018-12-10 11:18:52 · 27292 阅读 · 2 评论 -
十大排序算法总结 内部排序
目录排序测试模板一、冒泡排序总体思想编程思想复杂度及优缺点优化二、选择排序总体思想编程思想复杂度及优缺点三、插入排序总体思想编程思想复杂度及优缺点四、希尔排序总体思想编程思想复杂度及优缺点五、归并排序总体思想编程思想复杂度及优缺点六、快速排序总体思想编程思想复杂度及优缺点七、堆排序总体...原创 2018-12-10 09:42:37 · 6401 阅读 · 2 评论 -
leetcode-347-前K个高频元素(top k frequent elements)-java
题目及测试package pid374;/* 前K个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明: 你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素...原创 2018-11-30 10:47:13 · 792 阅读 · 1 评论 -
leetcode-75-颜色分类(sort colors)-java
题目及测试package pid075;/*颜色分类给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]...原创 2018-11-29 11:13:57 · 237 阅读 · 0 评论 -
leetcode-排序总结
leetcode-88-合并两个有序数组(merge sorted array)-java排序两个数组如果合成的那一列前面有必要的数据,后面没有,那么可以由后向前排序原创 2018-09-27 10:40:33 · 305 阅读 · 0 评论 -
leetcode-88-合并两个有序数组(merge sorted array)-java
题目及测试package pid088;/*合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:...原创 2018-09-27 10:32:59 · 298 阅读 · 0 评论 -
快速排序 java实现+思路
首先是测试方法package algorithm.sort.quickSort;import algorithm.sort.quickSort.Solution;public class main { public static void main(String[] args) { //int[][] testTable = {{1,2,3,0},{1...原创 2018-08-02 18:39:58 · 647 阅读 · 0 评论