本书涉及的数据结构有栈、队列、树、并查集、堆和图等;算法有各种排序、枚举、深度和广度优先搜索、图上的遍历,当然还有图论中不可缺少的四种最短路径算法、两种最小生成树算法、割点与割边算法、二分图的最大匹配算法等。
排序
桶排序
时间复杂度O(N+M)
冒泡排序
冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。
从大到小排序。
冒泡排序的核心部分是双重嵌套循环。时间复杂度是O(N^2)。
快速排序
首先找一个数作为基准数,设置两个哨兵变量,指向序列最左边与最右边,找到右边小于基准数的数与左边大于基准数的数,两数交换,两哨兵变量相遇后,交换基准数与哨兵变量所指的数,然后对两哨兵变量左边与右边做相同的操作。
快速排序的每一轮处理其实就是将这一轮的基准数归为,直到所有的基准数都归为。
快速排序的最差时间复杂度和冒泡排序一样都是O(N^2),他的平均时间复杂度为O(NlogN)。
快速排序基于“二分”发。
排序算法还有选择排序、计数排序、基数排序、插入排序、归并排序、堆排序。堆排序是基于二叉树的排序。
栈、队列、链表
可使用两个数组模拟链表。第一个整数数组data是用来存放序列中的具体数字,另外一个整数数组right是用来存放当前序列中的每一个元素右边的元素在数组data中位置。
枚举
穷举法
万能的搜索
深度优先搜索
栈
广度优先搜索
队列
图的遍历
也是用深度或广度优先搜索
可使用二维数组来存储

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



