数据结构和算法
数据结构和算法
季布,
每一个你不满意的现在,都有一个你没有努力的曾经。
展开
-
数组和链表的特点
数组数组是相同数据类型的元素按照一定顺序排列的集合;数组的存储空间是连续的,占用内存比较大,所以空间复杂度比较大。数组的特点是:查询简单,增加和删除困难。在内存中,数组是一块连续的区域数组需要预留空间在使用需要提前申请所占内存的大小,如果提前不知道空间的大小时,预先申请可能会浪费内存空间,即数组空间的利率较低。注:数组空间在编译阶段就需要进行确定所以需要提前给出数组空间的大小(运行阶段是不允许改变的)在数组起始位置处,插入和删除数据效率低插入数据时,待插入位置的元素和他后面的所有元素都需要向后原创 2022-01-06 11:04:18 · 872 阅读 · 0 评论 -
数据结构和算法概念理解
数据结构的定义:1)数据是所有能被输入到计算机中,且能被计算机处理的符号的集合2)数据是计算机操作的对象的总称,也是计算机处理的信息的某种特定的符号表示形式(1)数据元素又被称为数据节点或者数据记录是数据中的一个个体,数据的基本单位(2)数据结构带结构的数据元素的集合 (这里强调元素的集合,ID Status Type)相互之间存在着某种特定关系的数据元素的集合(比如上面3113,3112两两相临就存在联系,线性关系)数据以及数据元素相互之间的联系(3)数据的存储结构数据元素及其关系原创 2021-08-22 15:37:48 · 1481 阅读 · 4 评论 -
Python 选择排序
原理说明:从需要排序的数据中选出一个元素(默认第一个元素),置于序列的起始位置,然后,再从剩余未排序元素中查找出和第一个元素相比小的元素,调换位置。以此类推,直到全部待排序的数据元素排完。import random# 定义插入排序函数def selection(info): #外层循环决定第一个元素的位置下标 for i in range(0,len(info)-1): # 记录最小元素下标 min_index = i # 内层循环用来原创 2021-08-10 10:53:23 · 230 阅读 · 6 评论 -
python 二分查找
二分查找算法又称折半查找,二分查找算法就是将数据分隔成两份,首先用要查找的数据与中间值进行比较。如果要查的数据小于中间值,可确定要查找的数据在前半段;如果要查找的数据大于中间值,可确定要查找的数据在后半段。然后对前半段(后半段)进行分隔,将其分成两等份,再拿要查找的数据跟中间值相比较。以此循环比较、分隔,直到查找到数据存在或者确定数据不存在为止。二分查找的缺点是只适用于已经排序号的数组;优点是查找速度快。综上可得:优点:查找速度快缺点:要求查询的表为有序表原理:拿要查找的数据与表中间位置的数据做比较原创 2021-07-14 10:34:36 · 201 阅读 · 0 评论 -
python 插入排序
基本思路:从列表中选择一个元素,与左边的元素进行比较,找到合适的位置插入。在实现上,是从后向前扫描的过程,需要反复把已排序的元素向后挪位,为最新的元素提供插入的空间import random# 定义插入排序函数def insert(info): for i in range(1,len(info)): # 外层循环控制循环的次数,有多少个元素就循环多少次,从1开始是因为第0个元素已经有序了,拿第一个和第0个比较 for j in range(i, 0, -1): # 内层循环原创 2021-07-09 11:26:37 · 90 阅读 · 0 评论 -
python 冒泡排序
下图中的数字是无序的,通过冒泡排序两两比较可产生一个由小到大的顺序列表理解:相邻元素相互比较大小并进行交换,导致相对于偏小(偏大)的元素不断往某一方向移动。 是一种交换排序,类似相同深度的两个气泡,大的会先浮出水面import random# 定义冒泡排序函数def bubble(info): for i in range(len(info) - 1):# 外循环每一次使得有序的数增加一个 recycle = False # 用于优化(没有交换时表示已经有序,结束循环)原创 2021-07-07 13:33:51 · 139 阅读 · 0 评论