创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜
前言
程序=数据结构+算法,算法是数学理论和工程实现的杂糅,是一个十分有趣神奇的学问。搞懂算法用另一种视角看编程,又会是一种全新的感受,如果你也在学习算法,不妨跟主任萌新超差一起学习,拿下算法!
系列文章目录
python每日算法 | 基数排序PK快速排序,手撕基数排序算法!
概述
本期的内容将介绍数据结构基础知识(一):栈与队列以及最经典的迷宫问题。
目录
超超python每日算法思维导图
数据结构基础知识
数据结构是什么?
数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。
比如:列表、集合与字典等都是一种数据结构。
N.Wirth说过: “程序=数据结构+算法”
数据结构的逻辑结构
数据结构按照其逻辑结构可分为线性结构、树结构、图结构。
线性结构
线性结构:数据结构中的元素存在一对一的相互关系,例如列表。
树结构:数据结构中的元素存在一对多的相互关系,例如堆。
图结构:数据结构中的元素存在多对多的相互关系
列表
列表(python中叫列表,其他语言称数组)是一种基本数据类型。
关于列表的问题:
列表中的元素是如何存储的?
32位机器上一个整数占4个字节,一个地址占4个字节,64位一个地址占8个字节。
现有如下列表:
1 |
2 |
3 |
4 |
5 |
以32位机器为例,数组的存储是这样的:
若元素1的内存地址位100,则元素2的内存地址为104,以此类推,那么a[2]=100+2*4=108。
而对于列表,若1的地址为200,2-->300,3--88,列表是现通过查找地址,然后通过一个地址查找对应一个元素。
200 |
300 |
88 |
数组和列表的区别:
1.数组的元素类型需要一致,列表的元素类型不需要一致;
2.数组的长度是固定的,python的列表可以无限长。