![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
王大全
哥哼调。
展开
-
(1)基础:排序
对数组中元素,两两比较,两两交换。最大的依次放到后面2.选择排序从未排序的数组找到最小(大)元素,作为首元素,接着找第二个,一个个依次往前面排序。3.快速排序快速排序使用分治法从数列中挑出一个元素,称为 “基准”(pivot);重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。4.归并排序采用分治法,...原创 2022-07-04 21:31:10 · 74 阅读 · 0 评论 -
找出第k小的数对距离(排序+二分搜索)
数对 (a,b) 由整数 a 和 b 组成,其数对距离定义为 a 和 b 的绝对差值。给你一个整数数组 nums 和一个整数 k ,数对由 nums[i] 和 nums[j] 组成且满足 0 k,则right原创 2022-06-23 23:34:48 · 212 阅读 · 0 评论 -
把数字排成最小数字(自定义排序规则)
把数字排成最小数字输入非负整数数组,把数组里所有数字拼接起来成一个数,输出其中最小的一个数字。例如:输入:【10,2】输出:“102”输入:【3,30,34,5,9】输出:“3033459”自定义快速排序class Solution{ public String minNumber(int[] nums){ String[] strs = new String[nums.length]; for(int i=0; i<nums.length;i++){原创 2021-09-22 23:39:18 · 276 阅读 · 0 评论 -
最长连续序列
最长连续序列给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。class Soution{ public int longestConsective(int[] nums){ int n = nums.length; if(n<2){ return n; } Arrary.sort(nums); int res = 1, t = 1; for(int i = 1; i < n; ++i){ if原创 2021-08-22 14:53:11 · 41 阅读 · 0 评论