基础数学课10-小总结
这一章,我们简单总结下之前说的 数据结构,基本算法。
首先是数据结构,数据结构是解决问题的基本模型,利用这些基本模型,我们zai2将问题逐渐抽象化,最后解决。
而我们之前首先聊了,最为常见的数组这个数据结构。其非常适合快速的随机访问,可以让我们通过下标直接获取到所需的数据。
但是需要注意的是数组需要确定的是稠密的数列,如果数组中元素发生变动,会比较痛苦。
除此外就是链表,在Java中,其中存在着通过对象引用来实现的链表结构,其特点是不能直接通过下标来进行访问,必须要按照存储的结构来逐个读取。但是这样有利于数据的动态插入和删除。
除此外,我们还可以根据这两种基本的数据结构组合出更多的数据结构,比如哈希表,队列,栈等等。
比如哈希表,其主要的思想是,先分配一个很大的数组,然后每一个数组的元素都是一个链表头部,首先根据哈希算法,计算出key的哈希值,然后找到数组中对应的链表头部,加入到这个链表之中。
这样就保证了在有哈希冲突的情况下,还可以进行保存。并且保存的效率更高,检索的效率也更高。
这还可以跟我们之前说到的求余的操作联系起来。
除了最为基本的哈希表之外,我们还说了栈和队列
栈是一种先进后出的数据结构,函数的递归其实就是一种栈的实现。
队列则是一种先进先出的数据结构,先进入队列的先处理,后进入的后处理。
常见于生产者 消费者模型之中。
之后是编程语句
我们简单说了下条件语句,包含条件语句,循环语句,函数调用,
常见的循环语句和布尔表达式相结合,体现了排列组合的思想。
最后是对基本算法的总结,我们说过字符串的编辑距离,可以延伸出字符串匹配的算法。以及说过的图算法。动态规划,分治算法。