数据结构与算法
文章平均质量分 72
水的精神
一件事,要么不做,要么做到极致。
展开
-
分享一个国外的算法刷题网站
国外算法刷题网站原创 2022-07-15 18:54:24 · 653 阅读 · 0 评论 -
基本数据结构详解
最近的面试中,数据结构被吊打了很多次。之前蚂蚁金服被加面,也是因为四面的面试官对我的评价是:数据结构和算法不扎实。数据结构是大学学过的基础课。当时年少无知,无法理解数据结构的重要性,学的也不怎么好。不精通就不足以支撑面试了。(当然学任何知识都不是为了应付面试的,这一点一定要清楚)只不过作为初级开发,像我这样刚从大学毕业两年的,不去写中间件之类的。说实话挺少用到数据结构这些东西。因为实际上的开发工作,更多的是运用到的都是开发语言为我们写好的集合。原创 2022-03-17 02:12:31 · 1461 阅读 · 0 评论 -
深入解析什么是LSM-Tree
LSM-Tree 是一种设计思想。在此思想下,可以带来极高的写入速度。但是稍微牺牲了读取的速度。另外要知道,在此设计下,无法对事务有很好的支持。 还要知道,这种方式的写入方式,它是近实时的,在实时性上略有牺牲。 在此设计下,背后要进行merge,要花费很多的资源。 十多年前,谷歌发布了大名鼎鼎的"三驾马车"的论文,分别是GFS(2003年),MapReduce(2004 年),BigTable(2006年),为开源界在大数据领域带来了无数的灵感,其中在 “BigTable” 的论文中很...原创 2021-09-19 22:09:40 · 8857 阅读 · 1 评论 -
归并排序
对于归并排序,它的时间复杂度是 O(nlogn) ,它的最差时间复杂度是这个,最好的时间复杂度是这个,平均时间复杂度也是这个。 归并排序有一个很重要的思想在里边,那就是分治的思想。 算法的过程其实就两步,一个是分,一个是治。# #归并算法的过程图可以看到的是,所谓的分就是拆分,治就是将两个有序的序列合并成为一个有序的序列。# #下边看代码过程...原创 2020-01-08 12:26:28 · 166 阅读 · 0 评论 -
快速排序的思路和代码
首先快速排序的时间复杂度是O(n^2) 快速排序的平均时间复杂度是O(nlogn),最好的时间复杂度是O(nlogn),最坏的时间复杂度是O(n^2) 。时间复杂度是以最坏的来计算的,所以时间复杂度是O(n^2) 最有趣的是思路,和这个算法是一个典型的递归思想。# #一起看一下快排的思路 我来稍微分析一点,其实不管是算法还是程序,其实解...原创 2020-01-07 21:21:55 · 1114 阅读 · 0 评论 -
算法八皇后问题
# # 这个算法就是典型的递归,回溯问题:八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即: 任意两个皇后都不能处于同一行 、同一列或同一斜线上,问有多少种摆法(92)。# #解法思路1) 第一个皇后先放第一行第一列2) 第二个皇后放在第二...原创 2019-12-29 15:57:09 · 474 阅读 · 1 评论 -
一种简单的生成伪随机数的方法
论文原文:https://www.doc88.com/p-5405273318696.html我对原文的翻译:https://blog.csdn.net/star1210644725/article/details/100169402这个算法要解决的问题是:生成一个随机的订单号,又要保证绝对唯一我的思路主要是根据论文原文来的!大家觉得有问题,完全可以自己看论文,研究论文。...原创 2019-08-31 11:18:50 · 3412 阅读 · 0 评论 -
一种简单的生成伪随机数的方法(翻译)
这个算法来源于 ((北京交通大学中国铁道科学研究院)):https://www.doc88.com/p-5405273318696.html 简介:这个算法是用来生成随机订单号的算法。 对于这个算法,自己的理解以及代码实现:https://blog.csdn.net/star1210644725/article/details/100169386 原文是英文版的,自己英语不太...原创 2019-08-31 09:57:46 · 1944 阅读 · 0 评论 -
平衡二叉树、B树、B+树、B*树
一直知道mysql的索引是B+tree,那么B+tree到底是什么呢? 一起学习下这篇文章 原文地址:https://zhuanlan.zhihu.com/p/277006171、平衡二叉树概念平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构;特点:平衡二叉树是采用二分法思维把数据按规则组装成一个树形结构的数据,用这个树形结...转载 2019-07-24 18:58:50 · 312 阅读 · 0 评论 -
各种排序算法性能综合分析
一、排序算法说明排序的定义:对一个无序的序列进行排序的过程。输入:n个数:a1,a2,a3,…,an。输出:n个数的排列:a1,a2,a3,…,an,使得a1<=a2<=a3<=…<=an。排序的稳定性:相同值的节点相对位置是否会发生改变。稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后a可能...转载 2019-03-15 18:42:40 · 621 阅读 · 0 评论 -
数据结构与集合
写在前边:本文是个人学习笔记。(我是根据自己知识体系来做的,未必适合别人阅读)本文整理自《码出高效:java开发手册》目录本文整理自《码出高效:java开发手册》List集合集合初始化数组集合集合与泛型元素的比较:JDK中使用的排序方法TimSorthashCode 和equalsfail-fast机制Map类集合: 关于树:平衡二...原创 2019-04-26 16:28:58 · 4664 阅读 · 1 评论