算法
文章平均质量分 69
levosam
目标:全栈工程师
展开
-
归并排序算法
介绍归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。那么什么是归并操作,就是将两个顺序序列合并成一个顺序序列的方法。分治法是将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法:自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第 2 种方法);自原创 2022-02-18 14:12:00 · 1052 阅读 · 0 评论 -
希尔排序算法
介绍希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),也称递减增量排序算法,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止。希尔排序是基于插入排序的以下两点性质而提出改进方法的:原创 2022-02-14 13:50:55 · 283 阅读 · 0 评论 -
选择排序算法
介绍选择排序是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。工作原理从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾以此类推,直到全部待排序的数据元素的个数为零。要点第一次默认将数组arr[0]当做最小的数。然原创 2022-02-11 11:02:49 · 513 阅读 · 0 评论 -
冒泡排序算法
介绍冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。用法与要点冒泡排序的重点就是把相邻的两个元素进行比较,然后满足组条件就进行交换。比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后数组排序会呈升序。针对所有的元素重复以上的步骤,除了最后一个。持续每次原创 2022-02-10 11:00:27 · 512 阅读 · 0 评论 -
直接插入排序
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2022-01-25 17:53:59 · 89 阅读 · 0 评论 -
算法的时间与空间复杂度
年底了,小编准备去面试一波,去看看现在市面上对我这种水平的要求是什么。然后面试了许多的公司,经历了许多主程的吐槽和致命提问。接下来的时间直到到年底左右,都会将面试的问题以及答案一一写下来,展示给各位读者。那么接下里就开始介绍第一个问题。直接插入法的复杂度是多少?当前小编并不知道,所以懵了一下,回答的是0(n^2)和O(1)。然后面试官问我为什么是`O(1)`,然后我直接说蒙的。然后面试官瞬间沉默了,他当时可能在想这个人到底是个什么妖魔鬼怪,这都能靠运气。好吧,说实话,其实是之...原创 2022-01-15 19:57:52 · 105 阅读 · 0 评论