
数据结构与算法
wenkun97
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
常见排序算法C++实现
快速排序: void recursive(vector<int>& vec,int start,int end) { if(start>=end) { return ; } int split_num = vec[start]; int pos = start+1; int i=end; int temp;...原创 2020-03-20 15:10:26 · 165 阅读 · 0 评论 -
求解分治算法的递推关系
相关概念 分治递推关系:如果f(n)f(n)表示求解规模为nn的问题所需的云算数,则ff满足递推关系 f(n)=af(n/b)+g(n) f(n)=af(n/b)+g(n) 相关定理 【定理1】设ff是满足递推关系 f(n)=af(n/b)+c f(n)=af(n/b)+c 的增函数,其中nn被bb整除,b≥1,bb≥1,b是大于1的正整数,cc是一个正实数。那么 f(n)={O(nlogab)a...转载 2019-12-15 12:46:51 · 1358 阅读 · 0 评论 -
高级算法课后题——能否成环
参考链接: [算法]能否成环 能否成环 Description Given an array of strings A[ ], determine if the strings can be chained together to form a circle. A string X can be chained together with another string Y if the last ...原创 2019-12-04 21:48:45 · 308 阅读 · 0 评论 -
01背包问题,高级算法课后题——是否能通过考试
是否能通过考试 Description 小张想要通过明天的考试。他知道考题的分值分布,也知道考试中要拿到每一个题目需要耗费的时间。假设考试时长为h,共n个题目,需要拿到p分才能通过考试。现在已知每个考题的得分与耗时,请你判断小张能否通过合理安排时间,而通过考试,并给出通过考试的最短时间。 Input 输入第一行为测试用例个数.每一个用例有若干行,第一行为任务数量n、考试时常h、通过分数p,下面的n...原创 2019-12-04 20:12:44 · 246 阅读 · 0 评论 -
子数组的取值范围
Description 给定数组arr和整数num,求arr的连续子数组中满足:其最大值减去最小值的结果大于num的个数。请实现一个时间复杂度为O(length(arr))的算法。 Input 输入第一行为测试用例个数。每一个用例有若干行,第一行为数组,每一个数用空格隔开,第二行为num。 Output 输出一个值。 Sample Input 1 1 3 6 4 3 2 2 Sample Outp...原创 2019-10-17 15:44:54 · 372 阅读 · 0 评论 -
Dijkstra最短路径算法
Dijkstra最短路径算法 求单源到其他所有节点的最短路径,时间复杂度o( n^2 ) 算法特点: 每次找出前一次迭代后具有最低费用的节点,添加到集合中; 第k次迭代后,可以知道到k个目的节点的最低费用路径; 伪代码: Initialize: N'={u} for all nodes v if v is a neighbor of u then D(v) =C(u,v) ...原创 2018-10-20 20:03:02 · 3729 阅读 · 0 评论 -
堆排序算法
堆排序算法 算法特点: 利用完全二叉树的双亲结点与孩子结点的大小关系,每次输出堆顶元素,实现排序。时间复杂度o(nlogn) 是一个不稳定的排序算法。 算法步骤: 步骤1 构建堆:即根据元素初始顺序建立一个完全二叉树 示例: 步骤2 调整堆:从第N/2个结点到堆顶结点,若子节点大于该结点值,则与子节点交换,并继续向下调整,时间复杂度o(n) 步骤3 进行堆排序:每次输出堆顶元素(可以将堆顶...原创 2018-10-24 16:37:02 · 179 阅读 · 0 评论