算法笔记
Gabi_W
以悠悠一生,立一技之长,而贞静自守。
展开
-
算法笔记01
190415 二分查找 假设有序数组如下:[1, 2, 3, …, 100],要从数组中找到某一个数, 可以从第一个元素开始一个一个查找,这被称作简单查找。 也可以“猜数”,比如先猜这个数是50,和目标比较,如果小于目标,就可以猜75,如果还小于目标,可以猜88,然后再比较。这样每次“猜数”都缩小了一半的可能,所以很快就能找到我们的目标。 数组元素 1 2 3 4 5 … 49 50 ...原创 2019-04-15 17:35:27 · 101 阅读 · 0 评论 -
算法笔记02
190416 选择排序 假设有无序数组如下:[1,8,9,2,3,7,6,4,5,0],要将这个数组按照从小到大的顺序排列: 先找出数组当中最小的元素,取出,加到新数组中; 再到原数组中,找到当前数组中最小的元素,取出,加到新数组中; 反复进行,直到所有元素都被加到新数组中或者原数组为空时。 索引 0 1 2 3 4 5 6 7 8 9 原数组 1 8 9 2 3 7 6 4 ...原创 2019-04-16 10:27:01 · 163 阅读 · 1 评论 -
算法笔记03
190417 快速排序 快速排序一般来说会比选择排序更快,是使用递归的思路来解决排序问题的。 首先,来了解下递归。使用递归必须满足以下两点: 基线条件 递归条件 基线条件是使递归停止调用的条件,如果一个函数被不停的调用,占满全部内存,就会“死”。而递归条件,就是函数调用的条件。递归必须缩小问题的规模,且基线条件要简单。每次递归调用后必须离基线条件更近一步。对于参数是数组的情况来说,停止条件一般...原创 2019-04-17 11:14:48 · 151 阅读 · 0 评论