【从零开始学算法】数据结构

  1. 链表
    每个数据都有一个指针,指向下一个数据的内存地址。
    链表中,数据分散储存,因此只能逐个访问数据。
    要增删数据,只需要改变数据之间的指针。
    【拓展】①普通列表最后一个数据没有指针,但可以添加一个指针指向头部,叫循环链表。
    ②可以添加反向的指针,实现反向便历数据,叫双向链表。
  2. 数组
    数组元素按顺序储存在连续的内存中,每个元素都有编号,可以通过编号直接访问数组元素。
    但要在特定位置增删数组元素很麻烦,需要移动其他元素。

  3. 栈是一种线形数据,只能访问到最新的数据。有入栈(push)和出栈(pop)两种操作。要访问中间的数据,必须要对顶上的数据进行出栈操作。
  4. 队列
    与栈类似,从队列头添加数据,从队列尾取出(删除)数据。
    先来的数据先处理,FIFO
  5. 哈希表
    先准备N维数组,再用哈希函数计算每个数据的哈希值,再除以数组的长度N,取余数mod,并把该数据放进第mod个地址中。如果有多个数据的mod值相同,发生哈希表冲突,则在相应的地址后面生成链表依次存储。
    【拓展】还有一种解决冲突的办法,候补地址法,当冲突发生时,计算出数组中的候补地址,将数据存储进去。

堆示例
排列方式从上到下从左到右,每个节点两个子节点。规定子节点必须大于父节点。新增子节点若小于父节点,则与父节点调换位置,以此类推。堆顶数据永远是最小值。重构树的时间复杂度为O(logn)。

  1. 二叉树
    在这里插入图片描述
    每个节点有两个子节点,对某个确定的节点,其值大于左子树的任意值,小于右子树的任意值。其实二叉数是二分查找法的具象体现,增加数据时从第一个节点开始比对,小则向左,大则向右,以此类推。删除数据时,若没有子节点直接删除。若有一个子节点,则子节点连接待删除数据的父节点。若有两个子节点,则寻找左子树中最大值补充。查找节点方法与增加节点类似。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果从零开始习Python数据分析与挖掘,建议先习Python语言基础,包括变量、数据类型、控制结构、函数、面向对象等。然后再习常用的数据分析库,如Numpy、Pandas、Matplotlib等,会如何读取、处理、可视化数据。最后习数据挖掘算法,如机器习、线性回归、决策树等。 ### 回答2: Python是很流行的一种编程语言,它有越来越广泛的应用领域,包括数据分析和挖掘。如果你想从零开始习Python数据分析与挖掘,以下是一些建议和指导: 1. 习Python的基础知识。首先,你需要掌握Python的基础语法,包括数据类型、变量、条件语句、循环语句和函数等。建议通过在线课程或Python教材习这些基础知识。 2. 习Python的数据分析库。习Python的数据分析库将帮助你更好地处理和分析数据,并将其转化为可视化结果。建议习Pandas、NumPy和matplotlib等库。 3. 习Python的数据挖掘库。习Python的数据挖掘库将帮助你利用机器算法进行预测和分类,以及对数据进行聚类、回归和关联规则挖掘等。建议习scikit-learn、TensorFlow和Keras等库。 4. 完成数据分析和挖掘项目。通过实际项目的实践,你可以更好地了解如何应用Python进行数据分析和挖掘。可以通过参加数据科比赛或自己动手处理实际困难项目来获得经验。 5. 加入Python数据分析和挖掘社区。在Python社区中,你可以接触到更多的专业人士和探索最新技术。建议参加Python Meetup或加入在线社区,如Reddit或Kaggle等。 总之,要从零开始习Python数据分析和挖掘,你需要习Python基础知识、数据分析和挖掘库,并通过实际项目和社区参与来获得经验和知识。这是一个充满挑战和机会的领域,只有不断习和实践才能取得进步。 ### 回答3: 习Python数据分析与挖掘需要掌握Python语言的基础知识以及数据科的基本理论。首先,我们需要会Python语法和基本数据类型,包含变量、列表、字典、元组、字符串和控制流等基础知识。随后,需要习Python面向对象编程,包括类和对象等概念。掌握这些基础知识后,我们就可以进入数据科的领域,习一些统计和数基础知识,如概率论、线性代数和微积分等。 在习Python数据分析与挖掘的过程中,我们需要了解和掌握一些常用的数据处理和分析库,例如Pandas、NumPy和Matplotlib等。其中,Pandas库是数据分析过程中最常用的应用之一,主要用于数据清洗、组合和转换。NumPy库则是实现数值计算和科计算的重要库,可以处理高维数组和矩阵运算等重要任务。Matplotlib库则是Python中最有名的绘图库,可以实现各种类型的数据可视化操作。 在数据挖掘和机器习方面,我们需要了解和掌握一些算法和工具,例如聚类、分类和回归等常用的机器算法,以及Scikit-learn、TensorFlow和Keras等常用的机器习框架。 总之,习Python数据分析与挖掘需要有系统性的习和实践,需要注重基础知识的掌握和理解、常用库和工具的应用和实践、以及实际问题的解决方案。只有这样才能在数据科领域获得更加深入的了解和技术的提升。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值