![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
KAIHINGWON
这个作者很懒,什么都没留下…
展开
-
排序算法
排序算法时间复杂度是否基于比较冒泡 、插入、选择O(n^2)是快排 、归并O(nlogn)是适合小规模数据的排序:排序算法是否原地排序是否稳定实际应用冒泡排序(Bubble Sort)是是少插入排序(Insertion Sort)是是多选择排序(Selection Sort)是否少原地排序:特指空间复杂度是 O(1) 的排序算法。稳定性:若待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的...原创 2020-07-29 22:58:29 · 153 阅读 · 0 评论 -
STL容器
一、顺序容器容器中的位置来顺序保存和访问的vector向量(动态数组)底层数据结构为数组,特性:1)支持随机快速访问:时间复杂度为O(1);2)插入或删除非尾结点:时间复杂度为O(n);3)若初始分配空间已满会引起扩容,重新申请一个 1.5 / 2 倍大的内存空间,将原空间内容拷贝过来,随后释放原空间,操作耗时。注意:插入和删除操作后会导致旧迭代器失效。list列表底层数据结构为双向循环链表,特性:1)支持快速的增删:时间复杂度为O(1);2)查找元素:时间复杂度为O(n);2)内存原创 2020-07-19 20:06:04 · 122 阅读 · 0 评论 -
数据结构
链表struct ListNode{ int val; ListNode *next; //前驱指针 ListNode *pre; //后继指针};LeetCode:(206)反转链表(141)环形链表栈//栈#include <stack>stack<int> a//压入栈顶a.push();//栈顶弹出a.pop();//返回栈顶a.top();LeetCode:(20)有效的括号(232)用栈实现队列单端队列//单端队列#i原创 2020-07-22 23:32:52 · 110 阅读 · 0 评论 -
BFS与DFS
BFS(Breath First Search):广度优先搜索DFS(Deep First Search):深度优先搜索BFS代码模板:通过队列遍历LeetCode:(102)二叉树的层序遍历「BFS 遍历」、「层序遍历」、「最短路径」实际上是递进的关系。在 BFS 遍历的基础上区分遍历的每一层,就得到了层序遍历。在层序遍历的基础上记录层数,就得到了最短路径BFS(TreeNode* root){ //该队列用于存放每层节点 queue<TreeNode*> q; //首原创 2020-07-24 00:41:42 · 93 阅读 · 0 评论 -
斐波那契数列
斐波那契数列: F(n) = F(n-1)+F(n-2)LeetCode:(70)爬楼梯1. 递归时间复杂度:O(2^n)空间复杂度:O(n)int climbStairs(int n) { return climb(n);}int climb(int n){ //终止条件,第一阶为1,第二阶为2 if(n <= 2) { return n; } //每一阶为前两阶之和 return climb(n-1原创 2020-07-25 22:05:54 · 124 阅读 · 0 评论 -
二分查找
二分查找也称折半查找(Binary Search),是一种效率较高的查找方法,前提是数据结构必须先排好序,且要求为线性表,具有有随机访问的特点(如数组)。查找的时间复杂度为 O(logN)。代码模板:left = 0;right = sizeof(arry) - 1;while(left <= right){ //防止溢出 int mid = left + (right -left)/2; if(arry[mid] == target) //匹配成功,返回结果 return原创 2020-07-28 23:02:11 · 151 阅读 · 0 评论