![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法笔记
文章平均质量分 79
作为一个合格的算法工作者来说,还是希望每个人能够静下心来细细分析算法中的文字。真正的教程应当在书本中,而不是视频中的口耳传教。
苦走一口田
无
展开
-
算法分析(4)-排序-归并排序
归并排序Merge sort1简单释义2 自顶向下的归并排序2.1图解2.2 原地归并抽象方法的解释2.3自顶向下的归并排序2.4自顶向下的归并排序优化建议3 自底向上的归并排序3.1图解3.2代码1简单释义归并采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序方法。 归并排序能够保证将任意长度为NNN的数组排序所需时间和Nl原创 2020-12-23 23:40:35 · 269 阅读 · 0 评论 -
算法分析(3)-简单排序总结(选择,插入,希尔含图解)
1.前言2.排序成本模型及基本分类1 选择排序1.前言排序算法的实用意义还是很高的,可应用在商业处理,语音识别,天体物理学等领域。在本文中会介绍一些关于数据结构的内容。2.排序成本模型及基本分类分析排序过程,主要是对比较和元素交换使用的次数进行分析,当然不使用交换元素的算法可以通过统计访问次数来规定算法成本。1 选择排序选择排序是最简单的一类排序(简言之就是从数组中选择最小或者最大的元素进行排序):首先找到数据中最小(最大)的元素;将元素与数组第一个元素交换位置;在剩下的元素中找到.原创 2020-12-22 00:11:44 · 526 阅读 · 8 评论 -
算法分析(2)-Union-Find算法分析以及路径压缩优化
1.前言2. 三级目录1.前言上一节笔者介绍了常用的几种增长级。算法设计其实无非需要理解一下几点: 1.算法的目的是为了解决实际问题,应当为了更简便的解决实际问题设计算法(当然一些以安全为主的算法属于例外) 2.解决一个问题的方法并不唯一,但是总能通过“有效”的方法找到优秀的算法 3.优秀的算法往往代码也很简单 4.迭代式改进能够进一步改进算法本章中介绍的Union-Find算法是大部分算法分析中的首例,2. 三级目录...原创 2020-12-17 13:56:01 · 1201 阅读 · 0 评论 -
算法分析(1)-增长数量级分类总结
算法分析(1)1.总结,后面的解释其实可以不看2 常见数量级的补充解释(1)常数级别(2)对数级别(3)线性级别和线性对数级别(4)平方级以及立方级别(5)指数级别3 综述1.总结,后面的解释其实可以不看实现算法一般使用以下几种结构性原语:普通语句条件语句循环语句嵌套语句方法调用与之对应的典型增长数量级一般有:常数级别对数级别线性级别线性对数级别平方级别立方级别指数级别常见的增长数量级是基础,与之对应的算法在算法分析设计中往往是基础性的数学模型,读者可以收藏一下下(感原创 2020-12-11 00:54:04 · 3200 阅读 · 0 评论