随笔分类 -  数据结构&算法

基于Java的计算机算法分析入门、数据结构学习
摘要:###编写一个程序,讲a.txt文件中的单词与b.txt文件中单词与b.txt文件中的单词交替合并到c.txt文件中, a.txt文件中的单词用回车符分割,b.txt文件中用回车或空格进行分隔 package praDemo; import java.io.File; import java.io. 阅读全文
posted @ 2018-07-24 00:24 LegendQi 阅读(250) 评论(0) 推荐(0)
摘要:1.快速排序算法 算法步骤 2.堆排序算法 阅读全文
posted @ 2018-07-16 00:07 LegendQi 阅读(231) 评论(0) 推荐(0)
摘要:算法: 计算=信息处理 借助某种工具,遵照一定规则,以明确而机械的形式进行 计算模型=计算机=信息处理工具 所谓算法,旨在解决特定问题的指令序列 输入:待处理的信息(问题) 输出:经处理的信息(答案) 正确性:的确可以解决指定的问题 确定性:任以算法都可以描述为一个由基本操作组成的序列 可行性:每一 阅读全文
posted @ 2018-04-23 22:49 LegendQi 阅读(321) 评论(0) 推荐(0)
摘要:概念 哈夫曼原理 哈夫曼算法流程图 哈夫曼树 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 树节点间的边相关的数叫做权。 如何构造哈夫曼树 下面我 阅读全文
posted @ 2018-02-14 14:18 LegendQi 阅读(377) 评论(0) 推荐(0)
摘要:习题解答提要 习题1 1 1 分数分解算法描述 把真分数a/b分解为若干个分母为整数分子为“1”的埃及分数之和: (1) 寻找并输出小于a/b的最大埃及分数1/c; (2) 若c 900000000,则退出; (3) 若c≤900000000,把差a/b 1/c整理为分数a/b,若a/b为埃及分数, 阅读全文
posted @ 2018-01-07 14:13 LegendQi 阅读(7439) 评论(0) 推荐(1)
摘要:1个n位正整数a,删去其中的k位,得到一个新的正整数b,设计一个贪心算法,对给定的a和k得到最小的b; 一.我的想法:先看例子:a=5476579228;去掉4位,则位数n=10,k=4,要求的最小数字b是n k=6位的; 1、先找最高位的数,因为是6位数字,所以最高位不可能在后5位上取到(因为数字 阅读全文
posted @ 2017-12-27 21:22 LegendQi 阅读(633) 评论(0) 推荐(0)
摘要:计算机常用算法 第二章 枚举 (1)枚举概述 枚举法也称为列举法、穷举法,使蛮力策略的具体表现,又称为蛮力法。 枚举是一种简单而直接解决问题的方法. (2)枚举的基本思想是: (3)枚举的特点是 (4)枚举模式 有两种: 1.区间枚举 区间枚举设计的框架描述: 2.递增枚举: 递增枚举设计的框架描述 阅读全文
posted @ 2017-12-15 20:53 LegendQi 阅读(734) 评论(0) 推荐(0)
摘要:算法分析: 符号三角问题:下面都是“ ”。 下图是由14个“+”和14个“ ”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“ ”。 + + + + + + + + + + + + + + 在一般情况下,符号三角形的第一行有n个符号。符号三角形问题要求对于给定的n,计算有多少个不同的符号 阅读全文
posted @ 2017-12-07 16:43 LegendQi 阅读(1211) 评论(0) 推荐(1)
摘要:(1)题目: 无穷数列1,1,2,3,5,8,13,21,34,55,……,称为Fibonacci数列。它可以递归地定义为: 第n个Fibonacci数可递归地计算如下: int fibonacci(int n) { if (n include include int fibonacci(int n 阅读全文
posted @ 2017-12-06 20:48 LegendQi 阅读(307) 评论(0) 推荐(0)
摘要:棋盘覆盖问题 如何应用分治法求解棋盘覆盖问题呢? 利用分治的方法 分治实现的三步骤: 所以得出一个算法就是: 代码实现: 阅读全文
posted @ 2017-12-05 23:57 LegendQi 阅读(1229) 评论(0) 推荐(0)
摘要:问题描述:有n个运动员进行循环赛,要求设计满足一下要求的日程表 1、 每两人必须比赛一次且只比赛一次 2、 每个选手每天只能比赛一次 3、 要求比赛时间尽可能短(即n为偶数时比赛n 1天,n为奇数时比赛n天) 一、分治法 算法思想,先算n/2的日程表,然后将循环赛日程表左上复制到右下,左下复制到右上 阅读全文
posted @ 2017-11-30 23:17 LegendQi 阅读(748) 评论(0) 推荐(0)
摘要:1、我的递归算法(纯粹的递归) 2、书上的一个较慢的纯递归算法,运算15个盘子时,需要41.030s……. 4、网上一个优秀的非递归算法(用栈模仿递归),计算15个盘子时需要6.880s 我在这里根据《数学营养菜》(谈祥柏 著)提供的一种方法,编了一个程序来实现。 include using nam 阅读全文
posted @ 2017-11-26 22:27 LegendQi 阅读(406) 评论(0) 推荐(0)
摘要:1. 格雷码问题: 对于给定的正整数n,格雷码为满足如下条件的一个编码序列: (1) 序列由2n个编码组成,每个编码都是长度为n的二进制位串。 (2) 序列中无相同的编码。 (3) 序列中位置相邻的两个编码恰有一位不同。 例如:n=1时的格雷码为:{0, 1}。 n=2时的格雷码为:{00, 01, 阅读全文
posted @ 2017-11-24 22:16 LegendQi 阅读(408) 评论(0) 推荐(0)
摘要:2.问题:给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。 先对集合中的元素从小到大排序,然后统计重数,最后找出出现次数最多重数及其对应的元素。 实现步骤:```1.开一个 阅读全文
posted @ 2017-10-07 21:40 LegendQi 阅读(873) 评论(0) 推荐(0)
摘要:回溯算法的要点: 1,针对所给问题,定义问题的解空间。 2,确定容易搜索的解空间的组织结构。 3,通过剪枝优化搜索过程。 下面通过求解0/1背包问题来分析使用回溯算法的过程: 1,根据问题的描述,设所有的物件数是N,对应的重量和价值分别为w[0~N-1]和v[0~N-1],于是这个问题就转化成在这N 阅读全文
posted @ 2017-10-02 23:00 LegendQi 阅读(404) 评论(0) 推荐(0)