数据结构和算法
程序员架构师13
呆呆的
展开
-
冒泡排序
基本冒泡排序冒泡排序是一种非常易于了解的排序,它和我们小学时候站队是一样的道理:从第一个人开始,每次只和他右边的人相比较,如果第一个人比第二个人高,那么交换这两人的位置。否则,则从第二个人开始,继续如此往下,直到最后一个人。每趟下来,排在最右边的就是最高的。如果有n个人,那么执行n-1趟,整个队伍就是有序的。为了方便理解,我们用图形来演示,原始的队伍是:第一趟排序的过程:1号和2号相比...原创 2018-10-09 11:10:53 · 1336 阅读 · 2 评论 -
5大常用算法
分治算法一、基本概念分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的...原创 2018-10-09 11:16:49 · 581 阅读 · 0 评论 -
分治法与归并排序
首先来决一个基本的问题:如何合并两个有序序列?同样,我们也采取图形演示的方法,来一步一步解决问题,假设我们现在存在两个有序序列:1,3,5和2,4,6,7.那么我们首先应该在脑海中画出这样的一副图形:到现在,我们已经有解决问题的思路了:比较这两个序列的第一个元素,谁较小就输出谁,,然后将较小的元素从原队列删除.如此往下进行,如果某个队列为空,则直接将另一个队列中元素依序输出就好....原创 2018-10-09 11:18:29 · 460 阅读 · 0 评论 -
Hash 结构
在写这篇文章之前,看了很多关于HashMap解析的文章。对于大多数人来说,可了跟着别人的文章走一遍。大家都能了解HashMap的内部结构,使用方法以及注意事项。我还是觉得知道用是一回事。知道原理是另一回事。只有了解了其数据结构设计初衷。才能更好的使用它。 此系列文章主要分为两个部分,具体目录如下:哈希表初识(一) 哈希表之 HashMap(二)其中第一篇是带领着大家理解为什么会设计此种数据...原创 2019-07-24 21:41:46 · 857 阅读 · 0 评论