学习笔记3: 3-18

(1)排序算法的时间复杂度和空间复杂度:冒泡排序,快速排序,堆排序等
稳定的排序 时间复杂度 空间复杂度
冒泡排序(n2代表n的平方):比较相邻,每次冒泡最大的放到最后
最差、平均: O(n2) 最好: O(n) 1(因为需要一个临时变量来交换元素位置)
插入排序
最差、平均: O(n2) 最好: O(n) 1
归并排序:将序列分成两半边;自顶向下分置,自顶向上分置
最差、平均、最好: O(nlogn) O(n),链表时可为O(1)(因为需要一个大小为n的临时数组)
不稳定的排序 时间复杂度 空间复杂度
快速排序
平均: O(nlogn) 最坏: O(n2) O(logn)(因为递归调用了)
快排在完全无序的情况下效果最好,时间复杂度为O(nlogn),在有序情况下效果最差,时间复杂度为O(n^2)
堆排序:将数组成堆,每次删除堆顶
最差、平均、最好: O(nlogn) 1(因为需要一个临时变量来交换元素位置)
选择排序:每次选择最小的放在最前
最差、平均: O(n2) 1(因为需要一个临时变量来交换元素位置)
希尔排序 O(nlogn) 1

不稳定排序:“快选希堆”,原地排序:“快选希堆冒”
在这里插入图片描述
https://www.nowcoder.com/test/question/done?tid=22330194&qid=2169#summary
(2)二叉搜索树:树中任何结点的左子树中所有结点的值均比该结点小,右子树中所有结点的值均比该结点大。对二叉搜索树进行中序遍历可得到一个递增排序的序列。
(3)简单匹配算法的时间复杂度为O(mn),KMP匹配算法时间复杂度为O(m+n).
(4)哈希:哈希表存储的是键值对,其查找的时间哈希复杂度与元素数量多少无关,哈希表在查找元素时是通过计算哈希码值来定位元素的位置从而直接访问元素的,因此哈希表的插入,删除,查找都是O(1)。
(5)算法的时间复杂度取决于问题的规模和待处理数据的初态。
(6)线性表的存储结构分为顺序存储和链式存储:(1)顺序存储为逻辑上相邻且物理地址也连续,以数组形式出现,可以取任意下标访问,是一种随机存取的存储结构;(2)链式存储是逻辑上相邻但是物理地址不一定连续,以链表的形式出现,必须从头开始访问,是一种顺序存取的存储结构。
(7)T(n) = 25T(n/5)+n^2的时间复杂度:a = 25, b = 5, d = 2,则d = logba,所以时间复杂度为O(ndlgn) = O(n^2
(lgn))
在这里插入图片描述
https://www.nowcoder.com/test/question/done?tid=22313135&qid=15147#summary

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章