
算法
文章平均质量分 53
hellojackhui
西电大三学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法导论复习(2) 归并排序
归并排序时间复杂度 平均: θ(nlgn) 最好: O (nlgn) 最坏:O(nlgn) 空间复杂度:O(1) 课本在讲归并排序之前,先大致介绍了分治法。其中列出了分治模式在每层递归时的三个步骤:分解(将原问题分解成多个子问题) 解决(对子问题进行求解) 合并(将子问题解合并成原问题解)随后,已上文三个步骤为模板,分析了归并排序原创 2017-04-28 21:14:03 · 468 阅读 · 0 评论 -
算法导论复习(3) 堆排序
堆排序与归并排序具有相同的时间复杂度O(nlgn),但是在讲堆排序之前,先要搞清楚堆排序使用的“二叉堆”二叉堆是一个数组,可以被看成近似的完全二叉树 特点: 1.树上每一节点对应一个元素,除最底层外,树是完全充满的,而且从左到右填充。 2. a(大顶堆):根节点的值是大于等于任何子节点的值 b(小顶堆):根节点的值是小于等于任何子节点的值 3.每个节点的左子树和右子树均为一原创 2017-04-30 09:39:59 · 525 阅读 · 0 评论 -
回溯法 解决 8皇后问题
一.问题描述(百度百科过来) 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。二.问题分析 首先,这个问题可以进行模板化,也就是说求在n*n的数组里,放置n个数,且任意两数之间不能处于同一列或同一行或同一斜线上。三.解决方法 因为任意两数之间不能处于同一行,所以一行只能放一个数,所以控制数的位置取决于“纵坐标原创 2017-04-25 22:46:48 · 950 阅读 · 0 评论 -
JS触题生情 遍历输出
一.题目 统计数组 arr 中值等于 item 的元素出现的次数 输入例子: count([1, 2, 4, 4, 3, 4, 3], 4) 输出例子: 3二.分析 题目很简单,实现方式也很多,但之所以把它单独拿出来,主要是可以复习JS强大的迭代方法,废话不说放干货!! 上面的方法,every,some没法用。其他的加上平常用的for,while,掐指一算就很多了三,代码(for,w原创 2017-04-26 15:11:48 · 575 阅读 · 0 评论 -
算法导论复习(1) 插入排序
还有一个月就要算法导论考试了,东西很多,想了想就姑且把博客当作笔记。一边打字,一边看书,一边复习。插入排序虽然在第一章有所提到,然而具体讲解的地方是在第二章。插入排序(INSERTION-SORT) 时间复杂度:平均: O(n2) 最坏: O(n) 最好:O(n2) 空间复杂度:O(1)(因为不需要辅助数组存储数据)插入排序思路(结果从小到大)(个人理解): 从第二个原创 2017-04-28 00:13:50 · 514 阅读 · 0 评论 -
算法导论复习(4) floyd算法
Floyd算法是解决所有结点对的最短路径问题。算法运行时间为θ(V^3)。算法分析: Floyd算法考虑的是一条最短路径的中间节点,即简单路径p={v1,v2,…,vn}上除v1和vn的任意节点。 设k是p的一个中间节点,那么从i到j的最短路径p就被分成i到k和k到j的两段最短路径p1,p2。p1是从i到k且中间节点属于{1,2,…,k-1}取得的一条最短路径。p2是从k到j且中间节点属于{1原创 2017-05-04 10:54:17 · 941 阅读 · 0 评论 -
算法导论复习(5) 线性时间排序
线性时间排序在课本中讲了三种:计数排序、基数排序和桶排序,这三种排序的时间复杂度都是θ(n)。 一.计数排序 所谓计数就是按顺序对应下标i计算某种元素在数组中出现的次数,从而得到某种元素应该在有序数组对应的位置区间内。 例如:1,6,3,2,6,1,4 设置数组A来存放示例元素,设置数组B来保存元素出现次数 A:1,6,3,2,6,1,4 B: 下标i:0 1 2 3 4 5 6原创 2017-05-10 14:59:04 · 438 阅读 · 0 评论