1、数据结构的分类:链表,数组,二叉树,图,栈,队列
线性结构:有序数据元素,线性表,数组,栈,队列,链表
非线性结构:树,图,二维数组
2、栈的特点,先进后出,只允许在栈顶进行插入(push)和删除(pop)操作
队列的特点,先进后出
单向链表和双向链表,单向链表每一个节点都包含自身的数值和下一个内存地址
双向链表每一个节点,包含有自身的数值,上一个连接的地址,下一个连接的地址
3、排序算法:插入排序,选择排序,希尔排序,归并排序,基数排序,快速排序,冒泡排序
基数排序:按照位数来进行排序,从个位开始排序,首先建立一个二维数组,列的长度为10,接着按个位相同放入对应的列当中,
然后取出,接着按照十位的情况进行排序,直到所有的位数全部排完为止。
核心思想:从优先级最小的地方开始排序,逐步到优先级最高的地方,例如,十位大于个位,如果十位在前,那么不管个位如何,十位都在前面
这就是基数排序的核心思想,有的时候也被称为桶子法,是一种稳定的排序算法
冒泡排序:按照从前往后两个两个进行比较,如果发现前面大后面小,则进行交换,一轮结果之后,最大的值到达比较序列的最右端
在比较总数据的n-1轮之后,完成最终的排序
核心思想:每次比较之后,就已经找到整个序列的最大值了,此时不考虑最大值,找剩下序列的最大值,逐次交换之后,完成排序
快速排序:借鉴冒泡排序算法的思想,在实际排序时,每次排序设立基准点,通过基准点来减少排序的次数,例如,第一次迭代,选择左边第一个数作为基准
然后将数据集划分为两部分,第一部分为小于基准点的,第二部分为大于基准点的,接着在划分的两个部分当中进行下一步的求解,直到什么时候停止呢?
迭代停止的