摘要: 基线条件(base case)和递归条件(recursive case) 递归条件指的是函数调用自己,而基线条件则指的是函数不再调用自己,从而避免形成无限循环。 分而治之(divide and conquer,D&C) 问题:假设你是农场主,有一小块土地。大小为640m × 1680m。你要将这块地 阅读全文
posted @ 2019-03-05 21:12 WMXNLFD 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 数组和链表 使用数组意味着在内存中都是相连的(紧靠在一起的)。在数组中添加新元素也可能很麻烦。不过当需要随机读取元素时,数组的效率很高。 而链表中的元素可存储在内存的任何地方。链表的每个元素都存储了下一个元素的地址,从而使一系列随机的内存地址串在一起。因而链表的优势在插入元素方面。 选择排序 问题: 阅读全文
posted @ 2019-03-05 20:00 WMXNLFD 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 二分查找 二分查找是一种算法,其输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回 null 。 一般而言,对于包含n个元素的列表,用二分查找最多需要log2 n步,而简单查找最多需要n步。 仅当列表是有序的时候,二分查找才管用。 二分查找Python代码: 运行时 阅读全文
posted @ 2019-03-05 19:17 WMXNLFD 阅读(534) 评论(0) 推荐(0) 编辑