算法
从小就文静
这个作者很懒,什么都没留下…
展开
-
算法中的基础排序--插入排序
算法定义是 是将数组中所有的元素分别和前面已经排序好的元素相比较, 如果后面选择的元素比已排序的元素小,则交换位置,直至比较完成。 arr = [23,12,-2,5,66,21] 排序步骤: ①取数组的第一个元素23为已经排序好的元素,将第一个元素看作有序序列 有序部分:arr[0] 无序部分:arr[1:] ②取数组的第二个元素和有序部分的元素进行比较,12<23,所以交换俩个元素的位置...原创 2020-04-03 18:58:49 · 98 阅读 · 0 评论 -
素数和质数傻傻分不清楚,厄拉多塞筛法
自己总是搞混素数和质数,傻傻分不清楚 答案是:他们是一样的,只是叫法不同。 厄拉多塞筛法到底是什么呢? 是在西元前 250 年,希腊数学家厄拉多塞(Eeatosthese)想到了一个非常美妙的质数筛法,减少了 逐一检查每个数的的步骤,可以比较简单的从一大堆数字之中,筛选出质数来,这方法被称作厄拉多塞筛法(Sieve of Eeatosthese)。 他的具体操作:先将 2~n 的各个数放入表中,然...原创 2020-03-26 21:36:57 · 341 阅读 · 0 评论 -
地主要平均分地--快速排序
D&C的重要算法之一–快排 快速排序使用分而治之的策略 分而治之divide and conquer 快速排序是一种排序算法,他的速度要优于选择排序,而且是优雅代码典范之一 经典的一个问题是在1680M*640M的土地上,均匀分成方块。且分出的方块要尽可能的大 适用于这小块地的最大方块,也是适用于整块地的最大方块 欧几里得算法,待研究一下 https://www.khanacademy.o...原创 2020-02-11 11:36:44 · 224 阅读 · 0 评论 -
算法开篇的道路--二分查找
适用条件: 这几种情况下,比如 在电话簿中,查找以K开头的名字。很可能从K的前后开始查找,因为你知道K在电话簿的中间 在字典中,查找以O为开头的单词。你也将从中间开始查找 在数据库中查找i为开头的用户名,你可以从a开始查找。更合乎逻辑的方法是从中间开始查找 二分查找这种算法,其输入是一个有序的列表,如果查找的元素包含在列表中,二分查找返回其位置,否则返回null 工作原理: 对于包含n个元素的列表...原创 2020-02-04 14:37:20 · 86 阅读 · 0 评论