
从零开始学算法
Haris Ha
这个作者很懒,什么都没留下…
展开
-
从零开始学算法(二)选择排序
从零开始学算法(二)选择排序选择排序算法介绍算法原理算法简单记忆说明算法复杂度和稳定性代码实现 选择排序 代码是Javascript语言写的(几乎是伪代码) 算法介绍 选择排序(Selection Sort),是一种简单直观的排序算法 通过每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类...原创 2018-11-13 15:34:09 · 309 阅读 · 0 评论 -
从零开始学算法(三)插入排序
从零开始学算法(三)插入排序插入排序算法介绍算法原理算法简单记忆说明算法复杂度和稳定性代码实现 插入排序 代码是Javascript语言写的(几乎是伪代码) 算法介绍 插入排序(Insertion Sort)引用左老师的一句话理解:“就像是手里抓好了一副排好顺序的牌,新抓一张以后,从后往前划,一张张比较,最后在合适的位置把它插进去” 算法原理 划分“手牌区”以及将待插入元素与“手牌区”里排好序的元...原创 2018-11-13 16:39:02 · 274 阅读 · 1 评论 -
对数器都不准备那笔试什么的就凉透了!要打有准备的仗
本文由左程云老师讲授个人整理总结 Js实现排序对数器对数器什么是对数器对数器的使用对数器编写测试结果对数器完整代码(测试插入排序为例) 对数器 在没法OJ,或OJ也有毛病的时候,我们的算法可能大致是正确的,能简单的通过几个样例,但遇到复杂庞大的样例时抛锚,我们对着冗长的代码,去调试,用人工写样例的方式去测试是愚蠢的,这时候我们需要对数器出场了 什么是对数器 对数器是通过用大量测试数据来验证算法...原创 2018-11-13 20:21:04 · 594 阅读 · 0 评论 -
从零开始学算法(一)冒泡排序
从零开始学算法(一)冒泡排序冒泡排序算法介绍算法原理算法简单记忆说明算法复杂度和稳定性代码实现 冒泡排序 因为在学前端,代码是Javascript语言写的 算法介绍 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 通过循环遍历元素列来比较两个相邻的元素,然后交换大小顺序错误的两个元素的位置,直到不需要交换元素,也表明排序完成。 因为在排序的过程中大的元素会慢慢被换到最...原创 2018-11-12 15:50:15 · 657 阅读 · 0 评论 -
掌握归并排序前首先理解递归行为
剖析递归行为递归行为递归的联想理解递归的基本思想举个例子深入剖析递归行为递归行为的复杂度一些补充 递归行为 “大事化小” 讲的就是一个递归的思想,把一个规模大的问题通过划分成小问题去解决,小问题继续划分 递归的联想理解 递归像是你在金字塔的顶端,要收集最底的宝藏,你每下一层看没有宝藏,找到了去往下一层的门,继续去下一层,层和层之间的楼梯都是一样的,看上去走的行程是一样的,实际上它们是不同的楼梯,等...原创 2018-11-14 15:28:05 · 333 阅读 · 0 评论 -
从零开始学算法(四)归并排序
从零开始学算法(四)归并排序归并排序算法介绍算法原理算法简单记忆说明算法复杂度和稳定性代码实现 归并排序 代码是Javascript语言写的(几乎是伪代码) 算法介绍 归并排序(Merge Sort) 归并:把两个排好序的序列合并成一个排好序的序列 算法原理 划分“手牌区”以及将待插入元素与“手牌区”里排好序的元素进行大小比较,依此向前逐个比较,待插入的元素小于比较的元素,则交换位置,完成插入后“...原创 2018-11-15 11:19:22 · 360 阅读 · 1 评论 -
从零开始学算法(五)荷兰国旗问题详解
从零开始学算法(五)荷兰国旗问题详解荷兰国旗问题问题描述解决思想分析记忆代码实现 荷兰国旗问题 代码是Javascript语言写的(几乎是伪代码) 问题描述 荷兰国旗问题 给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N) 解决思想 在数组两边个准备一个区域,一个小于num...原创 2018-11-24 15:36:21 · 2446 阅读 · 0 评论