Algorithm & Structure
EUNC
IT搬砖大师
展开
-
Python的列表(List)的底层实现原理
Python的列表底层实现是顺序表没错,列表实际上采用的就是数据结构中的顺序表,而且是一种采用分离式技术实现的动态顺序表列表和元组列表和元组的区别是显然的:列表是动态的,其大小可以该标;而元组是不可变的,一旦创建就不能修改。实现细节python中的列表的英文名是list,因此很容易和其它语言(C++, Java等)标准库中常见的链表混淆。事实上CPython的列表根本不是列表(可能换成英...原创 2018-10-31 23:33:35 · 41087 阅读 · 11 评论 -
常用的数据结构介绍
0.数组:顺序存储,随机访问链表:链表存储,顺序访问1.栈2.队列3.串4.树1)二叉树2)遍历二叉树:前序(先中间,再左边,后右边)中序(先左边,再中间,后右边)后序(先左边,再右边,后中间)3)线索二叉树:用二插链表实现的二叉树,将那些没有使用的左右指针指向前驱和后继(前驱和后继就是遍历后(例如用中序遍历)的数据序列某一个数据的前面和后面的数据),形成的二叉树为线索二叉...转载 2018-11-02 01:10:20 · 881 阅读 · 0 评论 -
常见数据结构优缺点比较
数据结构是对在计算机内存中的数据的一种安排,数据结构包括数组,链表,栈,二叉树,哈希表等等,数据结构和技术与如何处理现实世界数据存储问题相连,现实世界数据指的是那些描述处于计算机外部的物理实体的数据。今天不展开常见数据结构的原理,仅仅比较他们的优缺点。数据结构优点缺点数组插入快,如果知道下标,可以非常快的存取查找慢,删除慢,大小固定有序数组比无序的数组查找快删...转载 2018-11-02 01:24:02 · 2640 阅读 · 0 评论 -
顺序表(数组)与链表的区别
算法和数据结构https://blog.csdn.net/abc_12366/article/category/7420575原创 2018-11-02 01:51:05 · 1463 阅读 · 0 评论 -
Python使用二分法实现在一个有序列表中查找指定的元素
回想这个面试题:Python在一个有序列表中查找指定的元素?一开始没想到使用二分法查找,直接说了遍历这个列表与指定元素比较。二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2…例如需要查找有序list里面的某个关键字key的位置,那么首先确认list的中位数mid,下面分为三种情况:如果 list[mid] < key,说明key 在中位数的 右边...原创 2018-11-02 09:46:15 · 5503 阅读 · 0 评论 -
Python3 基本排序算法 之 冒泡排序,插入排序,选择排序
目录基本排序算法按时间复杂度分类冒泡排序插入排序选择排序基本排序算法按时间复杂度分类O(n^2)冒泡排序插入排序选择排序Q(n log n)分而治之快速排序归并排序冒泡排序相邻的两个元素对比,大的数后推,遍历整个列表一次后,将最大项以冒泡的方式排列到列表末尾。简易版冒泡排序示例如下def bu...原创 2019-06-14 14:50:04 · 6441 阅读 · 8 评论 -
【Python】常用查询算法:最小项搜索、顺序搜索、二分搜索
目录最小项搜索顺序搜索二分(叉)搜索测试 main() 函数示例最小项搜索遍历整个列表,查询最小值def min_search(items): """ 最小项搜索 :param items: :return: """ min_index = 0 for i in range(len(items)): ...原创 2019-09-28 11:27:12 · 990 阅读 · 0 评论