算法图解笔记
尤利乌斯.X
这个作者很懒,什么都没留下…
展开
-
算法图解笔记:第一章(java版)
二分查找: 优点:时间复杂度低,仅为logN 注意:前提是有序数组 Code: public class Code_01_binarySearch { public static void main(String[] args) { //测试数组 int[] myList = {1,3,5,7,9}; System.out.println(bi...原创 2019-09-04 09:52:34 · 557 阅读 · 0 评论 -
算法图解第二章笔记:选择排序(java版)
数组: 使用数组意味着所有待办事项都在内存中都是相连的(紧靠在一起的) 优势:需要随机读取元素时,数组的效率很高。 链表: 链表中的元素可以存储在内存的任何地方,链表的每个元素都存储了下一个元素的地址,从而使一些系列的随机的内存地址串在一起。 优势:在插入元素方面。需要同时读取所有元素时,链表的效率很高。 局限:需要跳跃,链表的效率很低。 选择排序code: public class Select...原创 2019-09-06 08:55:40 · 150 阅读 · 0 评论 -
算法图解第三章笔记:递归(java版)
3.1 递归 案例:寻找祖母的钥匙。 钥匙在祖母的盒子里,一个大盒子中有很多小盒子,小盒子中也可能还有盒子。钥匙就在某个盒子中。如何找到钥匙? 方法一: 创建一个要查找的盒子堆 从盒子中取出一个盒子,在里面找 如果找到的是盒子,就将其加入到盒子堆中,以便以后再查找。 如果找到钥匙,则大功告成 回到第二步 方法二 检查盒子中的每样东西 如果是盒子,就回到第一步 如果是钥匙,则大功告成 第一种...原创 2019-09-09 09:48:46 · 266 阅读 · 0 评论 -
算法图解第四章笔记:快速排序1(java版)
分而治之(D&C)一种著名的递归式问题的解决方法。 案例:农场主分地问题: 要求:要将这块地均匀分成方块,且分出的方块尽可能大。 步骤:(1)找出基线条件,这种条件必须尽可能的简单 (2)不断将问题分解(或者说是缩小规模),直到符合基线条件 这个案例很有意思,而且后面的顿悟时刻:为何不对余下的那一块小块地使用相同的算法呢?这正是递归的核心思想啊。 另一个小例子: 给定一个数组...原创 2019-09-10 09:48:59 · 294 阅读 · 2 评论