文章分类 -  算法、设计模式

算法题一:
摘要:# #第一题:两个整数数组各有100亿条数据,并已经排序,保存在磁盘上,内存10M。# 问:# (1)如何取得交集?时间和空间效率分别是多少?Python 集合set()操作方法# 方法一:# a = [2,3,4,5]# b = [2,5,8]# tmp = [x for x in a if x 阅读全文

posted @ 2019-05-12 18:48 myworldworld 阅读(318) 评论(0) 推荐(0) 编辑

斐波那契数列示例
摘要:跳台阶、变态跳台阶、矩形覆盖其实都和斐波那契数列是一类问题。 跳台阶 问题描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 分析: 初始值很容易得到,当n > 2时,跳上n级台阶最后一步无外乎两种情况,从第n-1级跳一级跳上来,或是从第n-2级跳2级 阅读全文

posted @ 2019-02-21 09:41 myworldworld 阅读(168) 评论(0) 推荐(0) 编辑

四种方法实现斐波那契数列的对比
摘要:计算部分代码或函数平均执行时间:timeit 阅读全文

posted @ 2018-01-25 18:16 myworldworld 阅读(199) 评论(0) 推荐(0) 编辑

算法六:树、二叉树(算法部分)
摘要:一、树的概念 树: 同前面的线性序列不一样,前面的线性序列都是一维的;但树是二维或多维的 树的节点,即列表中元素。 二、二叉树的概念 二叉树: 是一种特殊的树,每个节点最多只能有0,1,2个子节点 二叉树(binary)是一种特殊的树。二叉树的每个节点最多只能有2个子节点: 四种二叉树 完全二叉树 阅读全文

posted @ 2018-01-07 13:50 myworldworld 阅读(140) 评论(0) 推荐(0) 编辑

算法五:排序、搜索(算法部分)
摘要:一、排序 排序算法:能将一串数据按照某特定顺序进行排列的一种算法。 常用排序: 名称 复杂度 说明 备注 冒泡排序Bubble Sort O(N*N) 将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮 插入排序 Insertion sort O(N*N) 逐一取出元素,在已经排 阅读全文

posted @ 2018-01-06 12:29 myworldworld 阅读(212) 评论(0) 推荐(0) 编辑

算法四:队列(数据结构部分)
摘要:单端队列的实现: 以顺序表为例实现队列: 如果这个队列,经常的操作是添加数据,应该使用:入队使用append,出队使用pop(0) 如果,经常的操作是取数据,应该使用:入队使用insert(0, item),出队使用pop() 总之,出入队有一个时间复杂为O(1),另一个为O(n)。 双端队列的实现 阅读全文

posted @ 2018-01-05 16:25 myworldworld 阅读(66) 评论(0) 推荐(0) 编辑

算法三:堆栈(数据结构部分)
摘要:栈: 栈的实现,可以用顺序表,也可以用链表的方式实现。 示例,以顺序表的方式实现栈: 入栈: 1入栈: 2入栈: 3出栈: 3出栈: 2 堆排序 堆分为最大堆和最小堆,其实就是完全二叉树。最大堆要求节点的元素都要大于其孩子,最小堆要求节点元素都小于其左右孩子,两者对左右孩子的大小关系不做任何要求,其 阅读全文

posted @ 2018-01-04 16:54 myworldworld 阅读(220) 评论(0) 推荐(0) 编辑

算法二:链表(数据结构部分)
摘要:线性表分为: 连续存储的顺序表 非连续存储的,通过链条串连起来的链表 单向链表: 单链表的实现: 先实现节点: 关于变量与内存的关系: 在其它语言中,定义变量,变量存储的就是变量的内容; 在python中,定义变量,变量是一个内存地址,它并不保存变量的内容,而是保存"变量的内容"所指向的内存地址。 阅读全文

posted @ 2018-01-03 13:53 myworldworld 阅读(161) 评论(0) 推荐(0) 编辑

算法一:timeit、顺序表(数据结构部分)
摘要:一、时间测试模块:timeit Timer是一个测量一小段代码或函数的执行速度的类。 参数: stmt参数:是要测试的代码语句statment setup参数:是运行代码时需要的设置,如import等 timer参数:是一个定时器函数,与平台有关 Timer().timeit(number=1000 阅读全文

posted @ 2018-01-03 13:24 myworldworld 阅读(192) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示