- 博客(4)
- 收藏
- 关注
原创 C语言-斐波那契(Fibonacci)数列三种不同求法时间复杂度分析
方法一 递归提起斐波那契数列,首先想到的大概都是递归,但是其时间复杂度并非最优,其时间复杂度为O(2^N)。具体分析可以参考:Fibonacci方法二 循环递归之所以效率低下,是因为需要重复的计算一些中间变量。而利用循环可以通过存储中间变量来减小计算量,其时间复杂度为O(N)。方法三 矩阵乘法利用矩阵乘法加上分治的思想,可以将其时间复杂度降低到O(log2^n).具体的
2016-12-26 19:13:00 5386
原创 C语言-数据结构-快速排序及优化-源代码
1. 目标利用快速排序对一个数组中的数据进行排序2. 代码分析快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。3.时间复杂度分析
2016-12-18 17:08:36 1367 1
原创 C语言-统计二进制数中1的个数-Hamming weight-汉明权重问题
1. 目的写一个函数,以一个无符号整数为参数,返回其汉明权重。例如,‘11’的二进制表示为'00000000000000000000000000001011', 故函数应当返回3。汉明权重(Hamming weight):指一个字符串中非零字符的个数;对于二进制串,即其中‘1’的个数。这里多说一句,汉明距离(Hamming distance)是不同的概念,汉明距离是指两个等
2016-12-11 17:37:38 2071
原创 C语言-数据结构-骑士周游-马踏棋盘问题-源代码
1. 目标对于一个指定的起始坐标,按照‘马’的走棋规则,从该坐标开始搜索一条可以覆盖棋盘每个位置的走棋路径。例如下面是从(2,0)坐标开始搜索得到的一个解。2. 代码结构3. 源代码该代码仅仅是寻找到一条生路,即停止。另外对选择的起始点,和寻找下一点的顺序不同(即sposition()中case的顺序不同,对于程序执行的时间影响会很大)。另外程序中调用了time
2016-12-04 10:43:09 5116 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人