![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
ccisreallyhapy
oOoOoOoOoOoOoOoOoOoOoOoO
展开
-
重要的排序算法总结【java实现】
引入几种排序算法的比较桶排序桶排序思路对于一个待排序的数组,可以将数组中的数据分配到有限的“桶”中。这个桶可以再次申请一个数组来实现。同时,需要对又申请的数组中的元素初始化为0。在进行排序时,会将原数组中的值作为“桶数组”的下标,每遇到一个原数组中的值,就将桶数组中的对应下标值加一。最后遍历一遍“桶数组”,值为0的跳过,不为0的代表某个值出现的次数。代码:public class BucketSocket { public static void main(String[] args原创 2020-09-16 22:01:44 · 332 阅读 · 3 评论 -
二分搜索初步总结
什么是二分查找二分查找是计算机科学中最基本、最有用的算法之一。 它描述了在有序集合中搜索特定值的过程。在最简单的形式中,二分查找对具有指定左索引和右索引的连续序列进行操作。这就是所谓的查找空间。二分查找维护查找空间的左、右和中间指示符,并比较查找目标或将查找条件应用于集合的中间值;如果条件不满足或值不相等,则清除目标不可能存在的那一半,并在剩下的一半上继续查找,直到成功为止。如果查以空的一半结束,则无法满足条件,并且无法找到目标。关键变量在二分查找中,有几个变量是我们着重关注的:目标值(tar原创 2020-07-26 13:01:59 · 303 阅读 · 0 评论 -
【数组算法题型】中位数的相关题型
例题例一:求不排序数组中的中位数。要求:不能给数组排序时间复杂度最好在O(n)分析:因为题目对时间复杂度和改变数组都做了限制,其实第二条限制已经限制了不能给数组排序,因为如果给数组排序,最快的时间复杂度为NlogN,其中比较快的排序算法就是快速排序。因为我们只需要获得中位数的值,所以也不需要将数组全部排序。所以,可以采取另一种方法:分治法。 快速排序算法在每一次局部递归后都保证某...原创 2020-05-07 18:02:01 · 1002 阅读 · 0 评论 -
【leetcode】回溯算法的解题思路分析
回溯思想引入(力扣官方解释)回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就 “回溯” 返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为 “回溯点”。许多复杂的,规模较大...原创 2020-02-16 11:04:11 · 618 阅读 · 0 评论 -
【leetcode】寻找重复数三种解法的比较
题目描述给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输...原创 2020-02-09 17:39:34 · 564 阅读 · 0 评论 -
【leetcode】环形链表(法二)
题目描述给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。算法和之前分析过的快慢指针发不同,这个方法思路会更加简单。第二种方法被称为哈希法。我们可以巧妙地利用HashSet中的元素不可...原创 2020-02-09 17:16:24 · 144 阅读 · 0 评论