![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
文章平均质量分 61
我真的是dj
这个作者很懒,什么都没留下…
展开
-
常见的排序算法
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题。 上面的这张图来自一个PPT。它概括了数据结构中的所有常见转载 2017-07-05 16:22:24 · 326 阅读 · 0 评论 -
面试复习-------算法与数据结构------链表
如果一个操作可能会改变头指针,那么参数应该是ListNode** phead头插法和尾插法是指在建立单链表的时候,时间复杂度都是O(n)将节点添加到一个已存在链表的尾部也是O(n),那么为何尾插法可以O(n)而不是O(n^2),原因是在创建的时候会维护一个链表尾部的指针。所以不用每次都循环寻找链表尾节点。(1)反转链表(剑指offer16)为了防止断链需要设置三个指针分别指原创 2017-08-24 17:28:02 · 288 阅读 · 0 评论 -
面试复习-------算法与数据结构------字符串
(1)数组排成最小的数(剑指offer33/leetcode179)解题思路:关于数字的大数问题最终都要转换成字符串解决。在该题中,将vector 转换成vector,然后调用sort函数,需要定义sort第三个规则如下: static bool cmp(const string str1, const string str2){ string s1 = str1原创 2017-08-20 20:58:43 · 281 阅读 · 0 评论 -
面试复习-------算法与数据结构------栈&队列
STL栈:入栈:s.push(x); 出栈:s.pop()无返回值; 返回栈顶s.top()s.empty(),s.size()....STL队列:入队:q.push(x)放到队列的末端;出队:q.pop() 弹出队首无返回值q.front()返回队首;q.back()返回队尾q.empty(),q.size().....(1)队列 栈两个栈实现一个原创 2017-08-23 15:05:07 · 280 阅读 · 0 评论 -
面试复习-------算法与数据结构------排序
(1)快速排序最坏O(n^2),平均O(n*logn);特点:每趟都选择一个基准数,排完使左边全部比基准小,右边全部比基准大核心的partition函数如下:int Partition(int* arr, int left, int right){ if(left >= right) return left; int tmp = arr[left]原创 2017-08-18 21:44:20 · 339 阅读 · 0 评论 -
面试复习-------算法与数据结构------实现库函数
库函数的实现(1)字符串拷贝函数strcpy()/***********************************实现strcpy函数输入:char* dest,char* src输出:dest***********************************/char* strcpy(char* dest, char* src){ if(dest == NU原创 2017-08-18 19:44:15 · 241 阅读 · 0 评论 -
面试复习-------算法与数据结构------二叉树
创建二叉树(1)二叉树的反序列化给定“6423####51##7##”(先序)这种序列,构造二叉树TreeNode* preOrderToTree(string input,int& index){ if(input.length() == 0)return NULL; if(input.at(index) == '#') { index++;原创 2017-08-30 20:46:32 · 345 阅读 · 0 评论