基础算法小总结

算法

算法的定义: 独立存在的一种解决问题的方法和思想

  1. 输入 : 算法具有0个或者多个输入
  2. 输出: 算法至少有一个或多个输出
  3. 有穷性: 算法在规定的时间内执行有限的步骤,不会无限循环
  4. 确定性: 算法中的每一步都有确定的含义,不会出现二义性
  5. 可行性: 算法的每一步都是可行的,算法的每一步能够执行有限的次数完成

算法的定义: 算法是程序实现优化性能的一种思想

数据结构: 程序在实现过程中,实现数据的一种数据储存方式,是算法实现的一种载体

python 内置了一些数据结构: 列表 和元组 (分离式顺序表) 字典和集合底层实现的是散列表

字典不可变类型和无序的原因是 因为底层实现了hash()方法: 实现可哈希的对象才能作为字典的键 散列表需要空留三分之一的位置进行空留,在存放数据时会进行空间扩容处理,原有的数据就会随机进行获取索引,进行存储

字典的时间复杂度数据的增删改查时: 都是O(1) 在进行字典的copy 和 可迭代的时候时: O(n)

大致的数据结构的构成: 顺序表 链表 栈 队列 排序与搜索 (一维空间的数据结构)

在排序中必要掌握的是快速排序 思想: 通过定义一个数作为一个基准值,通过判断剩下的数进行与基准值进行比较 小于基准值的数放在左边 大于基准值的数放在右边

然后进行判断左边数进行拆分成单独的进行比较,右边也进行相同的操作

时间复杂度 : 最优时间复杂度 O(nlogn) 最坏时间复杂度O(n^2) 不稳定

栈: 先进后出 队列: 先进先出

树与二叉树是属于数据结构二维空间

广度优先查找(层级查找)

深度优先查找: 先序遍历 : 通过 根 左 右 进行遍历

中序遍历 : 通过 左 跟 右 进行遍历

后序遍历 : 通过 左 右 跟 进行遍历

反推: 可以通过 中序排列 和(先序排列 或者后序排列 ) 两两进行排列顺序 ,可以推导出二叉树状结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值