![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 85
小哲今天也能摸鱼吗
这个作者很懒,什么都没留下…
展开
-
冒泡排序的理解和Java的实现
冒泡排序昨天对于快排进行了整理,接下来准备把各个常用的排序进行整理。冒泡排序的实现方式冒泡排序是一种通过相邻的数相互比较,每次找到一个最大的数字,然后把它放到最后一位。依次进行,就可以将一个数组排序完成。这种方式很明显需要的是两个指针进行循环,当出现前一个数字较大时候,就将它和后一位的数字进行调换操作。冒泡排序的复杂度分析时间复杂度:O(n²)冒泡排序采用了两个嵌套的循环,所以这里...原创 2019-06-21 17:21:17 · 138 阅读 · 0 评论 -
快速排序的理解和Java的实现
快速排序最近在面试题中经常看到说要手写一个快排,但是好久不接触都有些生疏,今天又复习了一遍快速排序的实现方式个人对于快速排序的理解是,通过设定一个基准数,找到这个基准数的在整个数组中适合的位置,即基准数的左边都小于这个基准数,基准数的右边都大于这个基准数。在这个时候,基准数左边和右边并不是有效的排序,只是统一的都大于或小于基准数,然后我们就可以更换基准数,然后通过递归的方式直接把这个数组进...原创 2019-06-20 20:01:15 · 111 阅读 · 0 评论 -
归并排序的理解和Java的实现
归并排序归并排序是使用一种divide-and-conquer(分而治之)的方式,通过将一个长的数组先进行划分,然后再将他们整合在一起,从而达到基于部分而获得整体的效果归并排序的实现方法归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法:自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第...原创 2019-06-21 23:04:47 · 118 阅读 · 0 评论 -
关于hash冲突的初步理解
Hash冲突什么是哈希冲突理解哈希函数关键字和它在表中存储位置之间存在一种函数关系。这个函数我们称为为哈希函数。hash:散列、杂凑 就是把任意长度的输入,通过散列算法,变成固定长度的输出,这种是Hash,一般翻译做散列、杂凑,或音译为哈希,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就...原创 2019-06-29 16:30:27 · 9712 阅读 · 1 评论 -
java实现二叉树的两种遍历方式,BFS和DFS
最近复习到了这个点,写点东西加强一下记忆吧二叉树遍历百度百科上是这么解释的:所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。很明显,遍历也会有着不同的方式,这里我们就简单的讲讲BFS和DFSBFS(Breadth First Sear...原创 2019-10-10 10:29:00 · 413 阅读 · 0 评论