摘要: # 时间复杂度最低, 空间复杂度最低(省空间) 查找速度最快(没有之一) lst1 = [5,6,7,8] lst2 = [0,0,0,0,0,1,1,1,1] for el in lst1: lst2[el] = 1 lst2[4] == 1 # o(1) 查找时间复杂度是1 # 也有一种方法可以快速的查找, 但是没有上面的那个快dic... 阅读全文
posted @ 2019-08-12 16:06 magickang 阅读(1228) 评论(0) 推荐(0) 编辑
摘要: # 二分法查找可以提高效率, 前提条件: 有序序列 # 二分法: 核心思想: 掐头去尾取中间, 一次砍一半. 两种算法: 常规循环, 递归循环(返回值要返回给上一个) # 常规循环 lst = [22, 33, 44, 55, 66, 77, 88, 99, 101, 238, 345, 456, 567, 678, 789] n = 66 ... 阅读全文
posted @ 2019-08-12 15:52 magickang 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 题: 接收n个参数,返回最大值和最小值(字典) # 用min()和min()函数解决 def func(*args): return {"最大值":max(args),"最小值":min(args)} min_max = [2,5,7,8,4] ret = func(*min_max) print(ret) # ... 阅读全文
posted @ 2019-08-12 15:46 magickang 阅读(2775) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序算法的原理如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 例子: 1,2,3,4,5,6 就拿... 阅读全文
posted @ 2019-08-12 15:45 magickang 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 1. lambda匿名函数 2. sorted() 3. filter() 4. map() 5. 递归函数 6. 二分查找 阅读全文
posted @ 2019-08-12 15:23 magickang 阅读(159) 评论(0) 推荐(0) 编辑