数据结构与算法
Mr仁雨
这个作者很懒,什么都没留下…
展开
-
【数据结构与算法分析】1.1 找出N个数字中第K大的数
问题描述: 找出N个数字中第K大的数 解决思路: 1、将输入的N个数递减排序,array[k-1]即第K的数 2、将输入的K个数递减排序,之后输入的数与前k个数进行比较,若接着输入的数大于前K个数,交换并剔出多余的数 3、未完待续 算法实现: 方法一: #include void findBigK原创 2015-10-16 20:20:31 · 1880 阅读 · 1 评论 -
【数据结构与算法分析】2.1 斐波拉切数列算法实现
问题描述: 有形如 1,1,2,3,5,8,13,21,34...的数列,从第三项开始的结果为前两项之和,称作斐波拉切数列,即f(0) =0, f(1) =1;f(n) = f(n-1) + F(n-2); 解决思路: 1.采用递归的方式,从上而下计算,优点是理解简单,缺点是复杂度太高,呈指数增长 2.方法一是因为重复计算了,比如要算f(4)需先求出f(原创 2015-11-09 21:24:30 · 1407 阅读 · 0 评论 -
【数据结构与算法分析】2.2 两个整数的最大公因数(也可判断两数是否互素)
问题描述: 求两个整数的最大公因数 解决思路: 辗转求余,复杂度位logn,要写严谨点就是判断输入数据是否合法 算法实现: #include int gcf(unsigned int m,unsigned int n); int main() { int m,n; while(scanf("%d%d",&m,&n)!=EOF){原创 2015-11-16 21:30:29 · 618 阅读 · 0 评论 -
【数据结构与算法分析】2.3 求X的N次幂
问题描述: 这还描述啥 解决思路: 递归,递推,以及logn的解法,第三种解法中,若n为偶数,x*n = x*(n/2)*x*(n/2);若n为奇数,x*n=x*(n/2)*x*(n/2)*x; 算法实现: #include double recursion(double x, int n); double recurrence(double x, int n); double logn原创 2015-11-16 22:15:25 · 598 阅读 · 0 评论 -
【数据结构与算法分析】1.2 编写程序解决字谜问题
原博:http://blog.csdn.net/u013667086/article/details/49179741 问题描述: 从已知的字谜中找出在字典中的单词 解决思路: 1、用指针数组存放字谜和字典单词 2、将字典单词排序并加上hash索引 3、遍历字谜,每一个在字典中有的字母按八个方向进行遍历找出单词(转载 2015-10-29 15:28:42 · 1749 阅读 · 0 评论 -
【数据结构与算法分析】1.3 用printOut函数输出任意实数
问题描述: 利用打印无符号整数的printOut函数打印任意实数 解决思路: 就是把整数和小数部分拆分打印,这里有好多坑 一是浮点数在计算机中存取的时候是不准确的 二是浮点强转整数采取的“舍去法” 三是你要考虑小数前几位是0和输入的就是一个小数的情况 四是下面的代码是不完整原创 2015-11-01 21:55:16 · 1270 阅读 · 0 评论 -
【数据结构与算法分析】2.4 求最大子序列和
问题描述: 给出指定整数序列,求出最大的子序列和 解决思路: 方法一从i到j进行扫描,复杂度为O(N3); 方法二每次两重循环,复杂度为O(N2); 方法三循环一次,复杂度为O(N3),但是对输入所有数据为负数时是不成立的; 算法实现: #include int MaxSeqSumOfN3(int a[],int n); int MaxSeqSumOfN2(int a[],int n原创 2015-11-19 22:35:07 · 402 阅读 · 0 评论 -
【数据结构与算法分析】1.4 用printOut函数输出任意实数
问题描述: 编写程序打印出include 解决思路: 主要是要拿到include 算法实现: #include #include int main() { FILE *file,*innerFile; int j=0; char ch; int flag = false; char filename原创 2015-11-03 19:08:09 · 570 阅读 · 0 评论