排序算法稳定性:在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。 附上一个快速排序时间复杂度分析:http://book.51cto.com/art/201108/287089.htm ...
分类:
编程语言 时间:
2016-06-12 23:21:34
阅读次数:
170
一,问题介绍 求解一棵二叉树的镜像。所谓镜像,就是从二叉树的根到叶结点的每一层,将所有的非叶子结点的孩子进行交换。 比如说,下面两棵二叉树互为镜像: 二,算法分析 从根结点开始,先交换根结点的左右孩子, 然后再依次交换根结点的左右孩子的孩子...... 时间复杂度分析:由于每个结点都会遍历一次,故时 ...
分类:
其他好文 时间:
2016-06-03 10:06:07
阅读次数:
147
题目链接: https://leetcode.com/problems/merge-k-sorted-lists/ 题目分析: 方法1: 可以通过分治法,首先将k条链表,分成两部分,分别对两部分进行合并,直到最后只剩下两条,可以使用merge函数对两条链表进行合并 时间复杂度分析:(待写中) 代码如 ...
分类:
其他好文 时间:
2016-05-24 16:56:26
阅读次数:
81
直接插入排序 和 折半插入排序Java实现;时间复杂度和空间复杂度分析...
分类:
编程语言 时间:
2016-05-13 14:55:25
阅读次数:
130
台阶问题:问题描述:
一个台阶总共有n级,没一次都可以选择跳1级,或者跳2级。
求总共有多少种跳法,并分析算法的时间复杂度。
分析:
如果只有一阶,f (1)= 1,有两阶,有两种跳法,分两次跳,每次一级,或者是一次跳2级。推广到n阶台阶,(n>2),第一次跳的时候又两种选择,如果是第一次跳一级,那么跳法数目等于f(n-1) ,另外一种是第一次跳2级,此时跳法数组等于f(n-2),所以总的...
分类:
编程语言 时间:
2016-05-12 20:48:42
阅读次数:
150
(1)原理和代码以及时间复杂度分析
1.计数排序的原理:设被排序的数组为A,排序后存储到B,C为临时数组。所谓计数,首先是通过一个数组C[i]计算大小等于i的元素个数,此过程只需要一次循环遍历就可以;在此基础上,计算小于或者等于i的元素个数,也是一重循环就完成。下一步是关键:逆序循环,从length[A]到1,将A[i]放到B中第C[A[i]]个位置上。原理是:C[A[i...
分类:
编程语言 时间:
2016-05-12 17:40:19
阅读次数:
156
一 算法的时间复杂度分析
(1)时间频度
一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。
(2)...
分类:
编程语言 时间:
2016-05-12 15:41:59
阅读次数:
239
尝试表达 本人试着去表达约瑟夫环问题:一群人围成一个圈,作这样的一个游戏,选定一个人作起点以及数数的方向,这个人先数1,到下一个人数2,直到数到游戏规则约定那个数的人,比如是3,数到3的那个人就离开这个游戏;按这样的规则,剩下一个人,游戏就结束,这个人就为赢家。(读者可以试着表达,不认同,直接忽略) ...
分类:
编程语言 时间:
2016-05-03 23:30:06
阅读次数:
214
对《大话数据结构》P384~P385—简单选择排序,进行了自己的理解并完善了代码。 简单选择排序如下: 代码和解释如下(VS2012测试通过): 运行结果: 时间复杂度分析见草稿图。 时间复杂度是O(n2)。 ...
分类:
编程语言 时间:
2016-04-20 19:47:00
阅读次数:
322
一,递归的四大基本法则: ①基准情形 基准情形是指那些不需要递归(不需要经过函数调用)之后就能退出的情况。它保证了递归的结束。 ②不断推进 每一次递归之后,都要向着基准情形靠近,并且在靠近的过程中问题的规模越来越小。 ③设计法则 书上说是:假设所有的递归调用都能运行 “不是特别理解” ④合成效益法则 ...
分类:
其他好文 时间:
2016-04-08 21:39:31
阅读次数:
286