[置顶] 判断一棵树是否为二叉排序树

概要由于二叉排序树的中序遍历时得到的一定是个一个升序序列,我们可以根据这一性质,利用中序遍历进行判定。算法1)设置全局变量max为无穷小。 2)若树为空,则返回true。 3)否则递归判断左子树是否为二叉排序树,并用flag1保存结果。 3)若flag1为假或者根节点关键字小于等于左子树的关键字,则返回false。 4)否则递归判断右子树是否为二叉排序树,并用flag2保存结果。 5)返回...
阅读(12) 评论(0)

[置顶] CCF考试——201604-4游戏

概要问题描述  小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。   方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。   每个单位时间,小明的角色必须向上...
阅读(60) 评论(0)

[置顶] CCF考试——201604-3路径解析

概要问题描述  在操作系统中,数据通常以文件的形式存储在文件系统中。文件系统一般采用层次化的组织形式,由目录(或者文件夹)和文件构成,形成一棵树的形状。文件有内容,用于存储数据。目录是容器,可包含文件或其他目录。同一个目录下的所有文件和目录的名字各不相同,不同目录下可以有名字相同的文件或目录。   为了指定文件系统中的某个文件,需要用路径来定位。在类 Unix 系统(Linux、Max OS X...
阅读(59) 评论(0)

[置顶] CCF考试——201604-1折点计数

概要问题描述  给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。   给定n个整数a1, a2, …, an表示销售量,请计算出这些天总共有多少个折点。   为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量...
阅读(58) 评论(0)

[置顶] CCF考试——201609-4交通规划

概要问题描述  G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。   建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路,使得任何两个城市间都可以通过高速铁路到达,而且从所有城市乘坐高速铁路到首都的最短路程和原来一样长。请你告诉G国国王在这些...
阅读(55) 评论(0)

[置顶] CCF考试——201609-3炉石传说

概要问题描述  《炉石传说:魔兽英雄传》(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示)。游戏在一个战斗棋盘上进行,由两名玩家轮流进行操作,本题所使用的炉石传说游戏的简化规则如下:   * 玩家会控制一些角色,每个角色有自己的生命值和攻击力。当生命值小于等于 0 时,该角色死亡。角色分为英雄和随从。...
阅读(79) 评论(0)

[置顶] 单链表的直接插入排序

单链表数据结构typedef struct node{ ElemType data; struct node* next; }Single_List;算法//直接插入排序 Single_List* Insert_Sort(Single_List* list) { //这里的单链表是带头结点的单链表 Single_List* cur,*pre,*p; cur...
阅读(298) 评论(0)

[置顶] CCF考试——201609-2火车购票

概要问题描述  请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。   假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。   购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排...
阅读(94) 评论(2)

[置顶] CCF考试——201609-1最大波动

概要问题描述  小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。输入格式  输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。   第二行包含n个正整数,依次表示每天的收盘价格。输出格式  输出一个整数,表示这只股票这n天中的最大波动值。样例输入6...
阅读(62) 评论(0)

[置顶] CCF考试——201612-2工资计算

概要问题描述  小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算:   1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元;   2) A中不超过1500元的部分,税率3%;   3) A中超...
阅读(63) 评论(0)

[置顶] CCF考试——201612-1中间数

概要问题描述  在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。   给定一个整数序列,请找出这个整数序列的中间数的值。输入格式  输入的第一行包含了一个整数n,表示整数序列中数的个数。   第二行包含n个正整数,依次表示a1, a2, …, an。输出格式...
阅读(72) 评论(0)

[置顶] CCF考试——201612-4压缩编码

概要问题描述  给定一段文字,已知单词a1, a2, …, an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何一个单词的编码(对应的01串)不是另一个单词编码的前缀,这种编码称为前缀码。   使用前缀码编码一段文字是指将这段文字中的每个单词依次对应到其编码。一段文字经过前缀编码后的长度为:   L=a1的编码长度×t1+a2的编码...
阅读(70) 评论(0)

[置顶] CCF考试——201703-3地铁修建

概要问题描述  A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市决定在1号到n号枢纽间修建一条地铁。   地铁由很多段隧道组成,每段隧道连接两个交通枢纽。经过勘探,有m段隧道作为候选,两个交通枢纽之间最多只有一条候选的隧道,没有隧道两端连接着同一个交通枢纽。   现在有n家隧道施工的公司,每段候选的隧道只能由一个公司施工,每家公司施工需要的天数一致。而每家公司最多只能修建一...
阅读(73) 评论(0)

[置顶] CCF考试——201703-2学生排队

概要问题描述  体育老师小明要将自己班上的学生按顺序排队。他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。   例如,下面给出了一组移动的例子,例子中学生的人数为8人。   0)初始队列中学生的学号依次为1, 2, 3, 4, 5, 6, 7, 8;   1)第一次调整,命令为“3号同学向...
阅读(91) 评论(0)

[置顶] CCF考试——201703-1分蛋糕

概要问题描述  小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k。   请问当小...
阅读(80) 评论(0)

[置顶] CCF考试——201709-4通信网络

概要问题描述  某国的军队由N个部门组成,为了提高安全性,部门之间建立了M条通路,每条通路只能单向传递信息,即一条从部门a到部门b的通路只能由a向b传递信息。信息可以通过中转的方式进行传递,即如果a能将信息传递到b,b又能将信息传递到c,则a能将信息传递到c。一条信息可能通过多次中转最终到达目的地。   由于保密工作做得很好,并不是所有部门之间都互相知道彼此的存在。只有当两个部门之间可以直接或间...
阅读(216) 评论(0)

[置顶] CCF考试——201709-5除法

概要问题描述  小葱喜欢除法,所以他给了你N个数a1, a2, ⋯, aN,并且希望你执行M次操作,每次操作可能有以下两种:   给你三个数l, r, v,你需要将al, al+1, ⋯, ar之间所有v的倍数除以v。   给你两个数l, r,你需要回答al + al+1 + ⋯ + ar的值是多少。输入格式  第一行两个整数N, M,代表数的个数和操作的次数。   接下来一行N个整数,...
阅读(226) 评论(0)

[置顶] CCF考试——201709-2公共钥匙盒

概要问题描述  有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。   钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。一串钥匙没有固定的悬挂位置,但钥匙上有标识,所以老师们不会弄混钥匙。   每次取钥匙的时候,老师们都会找到自己所需要的...
阅读(264) 评论(0)

[置顶] CCF考试——201709-1打酱油

问题描述  小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。输入格式  输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。输出格式  输出一个整数,表示小明最多可以得到多少瓶酱油。样例输入40样例输出5样例说明  把40元分成30元和10元,分别买3瓶和1瓶,其中3瓶送1瓶,共得到5瓶...
阅读(122) 评论(0)

[置顶] 判断二叉树是否为二叉搜索树

概要这题利用二叉搜索树的特性:左子树的所有的关键字小于根节点的关键字,右子树的所有关键字都大于根结点 的关键字。二叉搜索树的中序遍历一定是个有序序列。根据这一特性可以利用二叉树的非递归中序遍历来解答这个问题。算法思路1)初始化堆栈为空,设置data为当前根节点的键值,设置cur指向根节点,标志位flag为true。 2)若cur->lchild非空,那么如果cur->lchild的键值小于data...
阅读(74) 评论(0)

[置顶] Win10下Python的Opencv3的安装

1.安装Annaconda集成环境如果没有安装Annaconda集成环境的请先进入Annaconda官网下载适合自己电脑的安装包。下载成功后打开安装包,什么也不用想一直点击下一步。特别是不要选中下图中的添加到环境变量的选项。 2.更新相关包到最新版本如果电脑已经安装Annaconda,可能存在numpy,scipy包版本过低,那么打开Annaconda Prompt先后敲入以下代码等待安装成功:c...
阅读(185) 评论(0)

[置顶] 根据中序序列与后序序列构建二叉树

算法如下: 1)先在后序序列中找到根结点, 2)在中序序列中找到根结点位置,(可以将二叉树分为左子树和右子树) 3)用同样的办法构造左子树 。 4)用同样的办法构造右子树。算法如下:BinaryTree* Creat_Node(char ch) { BinaryTree* root; root = new BinaryTree; root->data = ch;...
阅读(113) 评论(0)

[置顶] 九度OJ——1008最短路径问题

题目描述: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 输入: 输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点t。n和m为0时输入结束。 (1#include <iostream...
阅读(97) 评论(0)

[置顶] 九度OJ——1447最短路

题目描述: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? 输入: 输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在...
阅读(103) 评论(0)

[置顶] 九度OJ——1028继续畅通工程

题目描述: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。 输入: 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的...
阅读(80) 评论(0)

[置顶] 九度OJ——1024畅通工程

题目描述: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。 输入: 测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M (N, M < =100 );随后的 N...
阅读(102) 评论(0)

[置顶] 九度OJ——1154Jungle Roads

题目描述: The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago. But the jungle overtakes roads relentle...
阅读(97) 评论(0)

[置顶] 九度OJ——1144Freckles

题目描述: In an episode of the Dick Van Dyke show, little Richie connects the freckles on his Dad’s back to form a picture of the Liberty Bell. Alas, one of the freckles turns out to be a scar, so his...
阅读(117) 评论(0)

[置顶] 九度OJ——1017还是畅通工程

题目描述: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 输入: 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距...
阅读(119) 评论(0)

[置顶] 九度OJ——1446Head of a Gang

题目描述: One way that the police finds the head of a gang is to check people’s phone calls. If there is a phone call between A and B, we say that A and B is related. The weight of a relation is defined t...
阅读(140) 评论(0)

[置顶] Python实现RGB与HSI颜色空间的互换

概要HSI颜色模型是一个满足计算机数字化颜色管理需要的高度抽象模拟的数学模型。HIS模型是从人的视觉系统出发,直接使用颜色三要素–色调(Hue)、饱和度(Saturation)和亮度(Intensity,有时也翻译作密度或灰度)来描述颜色。RGB向HSI模型的转换是由一个基于笛卡尔直角坐标系的单位立方体向基于圆柱极坐标的双锥体的转换。基本要求是将RGB中的亮度因素分离,通常将色调和饱和度统称为色度,...
阅读(221) 评论(2)

[置顶] 九度OJ——1109连通图

题目描述: 给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。 输入: 每组数据的第一行是两个整数 n 和 m(0<=n<=1000)。n 表示图的顶点数目,m 表示图中边的数目。如果 n 为 0 表示输入结束。随后有 m 行数据,每行有两个值 x 和 y(0#include using namespace std;const int MAX...
阅读(238) 评论(0)

[置顶] 九度OJ——1012畅通工程

题目描述: 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 输入: 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M...
阅读(113) 评论(0)

[置顶] 九度OJ——1009二叉搜索树

题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。 接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。 接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。 输出: 如果序列相同则输出YES...
阅读(106) 评论(0)

[置顶] 九度OJ——1201二叉排序树

题目描述: 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。 输入: 输入第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。 输出: 可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。 每种遍历结果输出一行。每行最后一个数据之后有一个空格。 样例输入:...
阅读(149) 评论(0)

[置顶] 九度OJ——1176树查找

题目描述: 有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。 输入: 输入有多组数据。 每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。 输出: 输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格。 样例输入: 4 1 2 3 4 2 样例输出: 2 3思路: 用数组存...
阅读(103) 评论(0)

[置顶] 九度OJ——1113二叉树

题目描述: 如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。比如,n = 12,m = 3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。 输入: 输入数据包括多行,每行给出一组测试数据,包括...
阅读(106) 评论(0)

[置顶] 九度OJ——1078二叉树遍历

题目描述: 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。 输入: 两个字符串,其长...
阅读(119) 评论(0)

[置顶] 九度OJ——1107搬水果

题目描述: 在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果合成一堆。每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和。当然经过 n‐1 次合并之后,就变成一堆了。小明在合并水果时总共消耗的体力等于每次合并所耗体力之和。 假定每个水果重量都为 1,并且已知水果的种类数和每种水果的数目,你的任务是设计出合并的...
阅读(152) 评论(0)

[置顶] 九度OJ——1172哈夫曼树

题目描述: 哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。 输入: 输入有多组数据。 每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。 输出: 输出权值。 样例输入: 5 1 2 2 5 9 样例输出: 37A...
阅读(550) 评论(0)

[置顶] 九度OJ——1019简单计算器

题目描述: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 输入: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 输出: 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 样例输入: 1 + 2 4...
阅读(190) 评论(0)

[置顶] 九度OJ——1014排名

题目描述: 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印。 输入: 测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N < 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数...
阅读(106) 评论(0)

[置顶] 九度OJ——1007奥运会排序问题

题目描述: 按要求,给国家进行排名。 输入: 有多组数据。 第一行给出国家数N,要求排名的国家数M,国家号从0到N-1。 第二行开始的N行给定国家或地区的奥运金牌数,奖牌数,人口数(百万)。 接下来一行给出M个国家号。 输出: 排序有4种方式: 金牌总数 奖牌总数 金牌人口比例 奖牌人口比例 对每个国家给出最佳排名排名方式 和 最终排名 格式为: 排名:排名方式 如果有相同的...
阅读(116) 评论(0)

[置顶] 九度OJ——1023Excel排序

题目描述: Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。 对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序;当 C=3 时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递...
阅读(117) 评论(0)

[置顶] 2016年计算机联考真题——寻求最大子集和的差

概述已知由n(n>=2)个正整数构成的集合A = {ak|0<=k算法思想根据快速排序的思想,把找到最佳的划分,把最小的[n/2]个数放到A1,其余的数放到A2。分组结果即为题意所求。 算法步骤: 1)若i=[n/2],则划分结束。 2)若i[n/2],则枢轴及之后的所有元素均属于A2,继续对i之前的元素...
阅读(200) 评论(0)

[置顶] 快速排序

概述快速排序和归并排序一样也是分而治之策略的应用,基本思路是在数组中选取一个主元,以它为标准,遍历数组把小于它的数放在右边,大于它的数放在左边。递归上述过程直至有序。选主元选主元与划分子集这两个问题关乎快速排序的效率问题。选主元有很多方式,比如直接那第一个数作主元,那么当数组基本有序时那么时间复杂度就变成了O(n^2)了,而不是O(nlogn),也可以利用随机函数来选取下标,从而确定主元,但是ran...
阅读(862) 评论(0)

[置顶] 归并排序

概述归并排序是典型的分而治之策略的应用。主要是把一个数组分成若干个子数组进行从小到大的归并直至有序。下面所说的归并排序默认为2路归并排序。递归算法思想1)将数组平分为2等份,对这两个子数组进行从小大到有序归并。 2)递归对左半部分进行2路归并 3)递归对右半部分进行2路归并//一趟归并 void Merge(int* data,int* tmp,int left,int right,int r...
阅读(182) 评论(0)

[置顶] 堆排序

概述堆排序是利用堆的特性——堆顶元素一定是这个堆的最大值或者最小值,来使选择排序中每趟选择最值变得更加高效的思路。对于堆的相关内容移步我之前的博客:堆算法思想这里我们默认从小到大排序。 思路一:首先把通过数组构造一个最小堆,之后依次执行最小堆的删除操作直至最小堆为空则能得到一个从小到大的序列。对于时间复杂度一定是O(nlogn)。然而这个算法却带来了O(n)的空间复杂度。那么这显然是不划算的。故这...
阅读(132) 评论(0)

[置顶] 希尔排序

概述由于之前的冒泡排序和插入排序效率低平均复杂度为O(n^2),那么为了加快排序效率,希尔排序就这样被提出来了。只要思想是定义一个增量序列来反复对数组按增量分割成的子序列进行直接插入排序,直至基本有序。算法思想先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插...
阅读(160) 评论(0)

[置顶] 简单排序

概述排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的实现。但是了解这些精妙的思想对我们还是大有裨益的。冒泡,插入这三种排序是最简单的排序,本文将主要讲解这两种排序思想。关与图解请参照如下地址的博客(是在不好画图,自己的图就是取自这篇博客):http://www.cnblogs.com/chengxiao/p/610300...
阅读(133) 评论(0)

[置顶] 散列表(下)——分离链接法

概述在我的上一篇博客散列表(上)——开放定址法 主要讲述了开放定址法的三种思路:线性探测法,平法探测法,双散列法三种思路,以及线性探测的代码实现。在这篇博客里,主要讲解第二中解决冲突的办法——分离链接法。分离链接法分离链接法的思想就是:将相应位置上冲突的所有关键词存储在同一个单链表中。主要办法是,构造以所有可能地址的为头的单链表数组。对于单链表的相关操作已经在之前的博客详细讲述了,如有需要请移步我之...
阅读(297) 评论(0)

[置顶] 散列表(上)——开放定址法

概述散列表,又称哈希表,hash表。散列表是一种特殊的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。这个源于散列表设计的特殊性,它采用了函数映射的思想将记录的存储位置与记录的关键字关联起来,从而能够很快速地进行查找。设计思想Hash表采用一个映射函数 f : key —> address 将关键字映射到...
阅读(417) 评论(0)

[置顶] 拓扑排序

概述拓扑排序:如果图中从v到w有有一条有向路径,则v一定要排在w之前。满足此条件的顶点序列称为一个拓扑序。获得拓扑序的过程就是拓扑排序。有向无环图:一个有向图中不存在环,则称为有向无环图,简称DAG(Directed Acyclic Graph)。AOV网络:如果用DAG图买表示一个工程,其顶点表示活动,用有向边拓扑排序算法思想:从图从选择一个没有前驱结点的顶点输出,之后删除该顶点和所有以它为起始点...
阅读(169) 评论(0)

[置顶] 最小生成树算法(下)——Kruskal(克鲁斯卡尔)算法

概要在我的上一篇文章最小生成树算法(上)——Prim(普里姆)算法 主要讲解对于稠密图较为合适的Prim算法。那么在接下里这片文章中我主要讲解对于稀疏图较为合适的Kruskal算法。Kruskal算法Kruskal算法思想概述: 如果说Prim算法可以用让一颗小树慢慢长大,那么Kruskal算法也可以用一句话来总结:将森林合并成树。就是说它比Prim算法更直接的贪心,把每个顶点看成一棵树,那么恶...
阅读(276) 评论(0)

[置顶] 最小生成树算法(上)——Prim(普里姆)算法

概述最小生成树:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。根据定义可知对于一个有V个顶点的图来说,其最小生成树定包含V个顶点与V-1条边。反过来如果一个图的最小生成树存在,那么图一定是连通图。 对于最小生成树算法最著名的有两种:Prim算法与Kruskal算法。Prim算法Prim算法思想描述: Prim算法可以简单描述成...
阅读(303) 评论(0)

[置顶] 最短路径算法(下)——弗洛伊德(Floyd)算法

概述在这篇博客中我主要讲解最短路径算法中的Floyd算法,这是针对多源最短路径的一个经典算法。对于单源最短路径算法请详见我的另一篇博客:最短路径算法(上)——迪杰斯特拉(Dijikstra)算法弗洛伊德(Floyd)算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或有向图或负权(但不可存在负权回路)的最短路径问题,同时也被用于计算有向图的传递闭包。算法思想与过程(一)算法思想: Flo...
阅读(2540) 评论(7)

[置顶] 最短路径算法(上)——迪杰斯特拉(Dijikstra)算法

概述单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。最短路径的最优子结构性质描述为:如果P(i,j)={Vi….Vk..Vs…Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必定是从k到s的最短路径。下面证明该性质的正确性。假设P(i,j)={Vi….Vk..Vs…Vj}是从顶...
阅读(728) 评论(1)

[置顶] 汉密尔顿回路问题

概述这是自己这学期算法课的实验作业。下面给出汉密尔顿图的定义。定义如下:对于连通图G=(V,E),V1,V2,…,Vn是G 的一条通路,且图中任意两个顶点都可达,若 中每个顶点在该通路中出现且仅出现一次,则称该通路为汉密尔顿通路。若 V1=Vn,则称该通路为汉密尔顿回路。算法描述1)初始化最佳路径数组best_path,同时初始化临时路径数组path与访问数组isvisited,设置最小长度min,...
阅读(561) 评论(0)

[置顶] 图的遍历(下)——邻接表

概述在我的上一篇博客:图的遍历(上)——邻接矩阵 中主要介绍了邻接矩阵的BFS和递归的DFS与非递归的DFS这3种遍历算法。在这篇博客我将主要叙述邻接表的以上3中遍历算法。首先来看看邻接表的表示方法。邻接表主要是针对稀疏图中邻接矩阵造成的空间浪费而提出的。下面我们来看看邻接表的表示。 1)无向图的表示 2)有向图 (说明:对于BFS,DFS的递归与非递归算法在这篇文章就不再重复,如有不了解...
阅读(244) 评论(0)

[置顶] 图的遍历(上)——邻接矩阵表示

概述图作为数据结构书中较为复杂的数据结构,对于图的存储方式分邻接矩阵和邻接表两种方式。在这篇博客中,主要讲述邻接矩阵下的图的深度优先遍历(DFS)与广度优先遍历(BFS)。广度优先遍历(BFS)BFS 算法的思想是:对一个无向连通图,在访问图中某一起始顶点 v 后,由 v 出发,依次访问 v 的所有未访问过的邻接顶点 w1, w2, w3, …wt;然后再顺序访问 w1, w2, w3, …wt 的...
阅读(246) 评论(0)

[置顶] 根据先序序列与中序序列构建二叉树

算法如下: 1)先在先序序列中找到根结点, 2)在中序序列中找到根结点位置,(可以将二叉树分为左子树和右子树) 3)用同样的办法构造左子树 4)用同样的办法构造右子树。//根据先序序列与中序序列构建二叉树 BinaryTree* Pre_In_Build(char* pre ,char* in, int size){ if(!pre || !in || size < 0){...
阅读(323) 评论(0)

[置顶] 从大到小输出二叉搜索树中键值不小于K的关键字

概要这是王道数据结构复习资料上的一道题。该书给出了递归算法,但是解析中对于非递归算法说使用非递归中序遍历的思路进行解答,这明显有错误。根据 二叉搜索树的性质可知,二叉搜索树的中序遍历是从小到大的序列,但是题意却是要从大到小输出,故需要采用右根左的遍历方式才能得到题意所要求的序列。算法如下:void FindK(BinarySearchTree* BST , int k){ stack<Bin...
阅读(412) 评论(0)

[置顶]

概念堆是一个用数组表示的完全二叉树,并满足以下两个特性: 1)父节点的键值总是大于或等于(小于等于)其子树上的任意结点 2)每个结点的左子树和右子树都是个堆。 如果父节点的键值总是大于等于任何一个子节点的键值,那么这时称之为最大堆或者大顶堆。反之,如果父节点的键值总是小于等于任何一个子节点的键值,那么这时称之为最小堆或者小顶堆。插入操作算法如下: 1)如果堆已满则不能插入 1)否则,把需要...
阅读(239) 评论(0)

[置顶] 平衡二叉树

由于平衡二叉树的前提是二叉搜索树,故关于二叉搜索树的内容请移步如下网址:http://blog.csdn.net/qq_30091945/article/details/77720865概念平衡因子:每个结点的平衡因子就是左右子树的高度之差,即可用如下公式表示:BF(T) = Hl-Hr 平衡二叉树:平衡二叉树可能是空树,也有可能是左右子树高度之差小于等于1的树,即平衡因子的绝对值小于等于1。...
阅读(361) 评论(0)

[置顶] 二叉搜索树

关于二叉树的基本操作请转到我的另一篇博客: http://blog.csdn.net/qq_30091945/article/details/77531651概念Binary Search Tree,也可称为二叉搜索树,二叉排序树。 它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它...
阅读(266) 评论(0)

[置顶] 并查集

并查集并查集是一种树形结构,又叫“不相交集合”,保持了一组不相交的动态集合,每个集合通过一个代表来识别,代表即集合中的某个成员,通常选择根做这个代表。初始化用数组来建立一个并查集,数组下标代表元素,下标对应的值代表父节点,全部初始化为-1,根节点为一个集合的元素个数,数组的长度为并查集的初始连通分量的个数。并查集要求各集合是不相交的,因此要求x没有在其他集合中出现过。算法如下://构造函数 UF(...
阅读(298) 评论(0)

[置顶] 2014年计算机联考真题——带权路径长度之和

思路如下: 利用层次遍历的思路,记录每层的层数level,对于该层的每个叶节点的带权路径长度 = data*(level-1) 算法如下: //求叶子节点带权路径长度之和 int WPL(BinaryTree* T){ BinaryTree* queue[100]; //构造容量足够大的队列 Binar...
阅读(243) 评论(0)

[置顶] 递归求序列最大最小值

这学期总算开了算法课了,不得不吐槽,大四上学期开这课,时间很尴尬。不多说了,第一节课老师留了道题,要求在一个递归函数里求序列的最大最小值。算法思路: 1)如果数组长度为1,则最大值与最小值相等 2)如果数组长度为2,则最大值与最小值各位其中一个。 3)如果数组长度大于2,那么采用二分策略,递归求前一半的最大最小值,与后一半的最大最小值,之后两两比较后的数组的最大最小值。代码如下:#includ...
阅读(590) 评论(0)

[置顶] 二叉树的构建及其遍历算法

概要二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的。二叉树有先、中、后,层次四种遍历方式,因为树的本身就是用递归定义的,因此采用递归的方法实现三种遍历,不仅代码简洁且容易理解,但其开销也比较大,而若采用非递归方法实现先中后3种遍历,则要用栈来模拟实现(递归也是用栈实现的)。下面先简要介绍先中后三种遍历方式的递归实现,再详细介绍先中后三种遍历方式的非递归实现与层次遍历。...
阅读(310) 评论(0)

[置顶] 栈的应用——表达式求值

概要表达式求值问题可以说是一个经典问题。具体思路就是首先把输入的中缀表达式转换为后缀表达式,然后再根据后缀表达式进行计算求值。中缀表达式转换为后缀表达式首先我们设定运算符在进栈前与进栈后的优先级: 首先在栈把“#”进行压栈,并在中缀表达式追加“#”。“#”作为结束标志。 对中缀表达式进行遍历,遇到数字进行输出到后缀表达式中 如果遇到运算符,把栈顶的元素(前者)的栈内优先级与即将入栈元素(后者)的栈外...
阅读(301) 评论(0)

[置顶] 单链表

现在已经进入专业课复习,王道的数据结构复习指导的第一个数据结构虽然是顺序表,但是过于简单,就不想写了。现在复习到链表,首先单链表数其他链表的基础。所以首先把单链表所有基础操作全部写一遍。包括建表,插入,删除,逆序,判断是否为空,合并等。我这里写的是带有头结点的单链表,头结点保存链表长度。代码如下:#include using namespace std;//带头结点的单链表类,...
阅读(346) 评论(0)

[置顶] 2013年计算机联考真题——确定主元

思路: 首先把主元 确定为A[0],并计数cnt=1。之后从下标为1开始遍历数组, 1.如果A[i] == A[0],cnt++ 2.如果不等,则如果cnt>0,cnt–,如果cnt<0,主元设定为A[i],cnt=1。 遍历结束后,再遍历一遍,确定主元的出现的次数,大于n/2,返回主元,否则返回-1代码如下:#include using namespace std;i...
阅读(289) 评论(0)

[置顶] 2011年计算机联考真题——寻找2个序列的中位数

思路: 设定两个升序序列分别为A与B,中位数分别为a和b。 1.如a=b,则即为所求,算法结束。 2.a#include using namespace std;int Median(int* A,int* B,int n) { int s1 = 0 , d1 = n-1, m1 = 0; int s2 = 0 , d2 = n-1, m2 = 0;...
阅读(277) 评论(0)

[置顶] 2010年计算机联考真题——一维数组循环左移

前记从七月份决定开始考研,中间由于听报告,回家复习数学和政治但无论一些时间。自己准备报考山东大学计算机技术的专硕,幸好是数学是考数学二,专业课一直有一门数据结构,这位我的复习节省了很多时间,不想数学一和统考的计算机基础综合的专业复习那么费劲。现在数据结构的复习完全是参照《王道考研系列——2018年数据结构考研复习指导》在复习。对于数据结构虽然到时候是手写算法,但是毕竟这是编程,对于算法能否正确实现并...
阅读(288) 评论(0)

[置顶] 社团活动学分管理系统

摘要之前忙于期末考试,所以没有时间把期末之前的课设写成博客。这次的课设虽然给定了可选题目,但是老师说做什么都可以。看见可选题目里有关于学分管理系统,考虑到时间紧迫,同时兼顾期末考试,故选择了这个社团学分管理系统。这里我也很感谢自己在校团委管理全校活动学分的同学为我这次课设提供了真实的学分数据。资源已经上传,如要下载请移步:http://download.csdn.net/detail/qq_3009...
阅读(564) 评论(0)

[置顶] 利用BP神经网络对语音数据进行分类

最近给学院老师的一篇论文帮忙改进BP神经网络,由于最后要发表论文,神经网络必须自己手写,搞了几个晚上,总算把基础的BP神经网络写出来,接下来再把老师的改进算法实现就ok了。(当然那代码不能公开了)我这里用的是《MATLAB神经网络43个案例分析》这本书中的语音数据集。(PS:神经网络的学习笔记没时间整理,马上蓝桥杯国赛,比赛结束回学校又是课设,这学期为了机器学习专业课也就是上课听听,还要火线复习把不...
阅读(1641) 评论(6)

[置顶] 《机器学习》(周志华版)——决策树

最近由于要写篇小论文而没时间更新博客。这篇决策树的笔记也参照了一些博客才完成的。下面是参照的博客链接:http://www.cnblogs.com/pinard/p/6053344.html http://www.cnblogs.com/pinard/p/6050306.html 本博客也只代表我对决策树的理解,如果有人想转载,请注明:http://blog.csdn.net/qq_300919...
阅读(398) 评论(0)

[置顶] 利用Logistic回归预测疝气病症的病马的死亡率

数据来源http://archive.ics.uci.edu/ml/machine-learning-databases/horse-colic处理过程由于该数据集存在30%的缺失,那么首先必须对数据集进行预处理,这里我把缺失值用每列的平均值来代替,同时把数据集没用的几列数据舍弃。之后利用sklearn库进行Logistic回归。代码与数据已经打包上传,如果有需要请移步:Python代码如下:#!/...
阅读(623) 评论(0)

[置顶] 基于属性值相关距离的KNN算法

该博客的观点来自于中国知网上由肖辉辉和段艳明执笔的论文《基于属性值相关距离的KNN算法的改进研究》。我只是因为最近做项目,老师分配任务研究KNN算法的改进而找到这篇论文,最后把论文中的算法代码。 下面是Python代码:#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/3/29 0029 19:15 # @Autho...
阅读(374) 评论(0)

[置顶] 《机器学习实战》——KNN分类算法

下面是《机器学习实战》中的KNN分类算法的笔记。自我觉得学了一段时间的机器学习,KNN可以说是公式推导最简单,最容易理解的一个算法了。资源已经上传,如果有需要请到如下链接下载:http://download.csdn.net/detail/qq_30091945/9794328 如果需要转载请注明:http://download.csdn.net/detail/qq_30091945...
阅读(639) 评论(0)

[置顶] 斯坦福机器学习笔记(二)

之前一直没时间整理这部分笔记,昨天通宵整理这部分笔记,同步网易公开课机器学习课程第四讲。资源我已经上传了,如果有需要的请转到下面的链接:http://blog.csdn.net/qq_30091945/article/details/60466622。 如果有人要转载请注明:http://blog.csdn.net/qq_30091945...
阅读(595) 评论(0)

[置顶] 《机器学习实战》--局部加权线性回归(LWR)

一 概述通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(under fitting),比如数据集是 一个钟形的曲线。而多项式拟合能拟合所有数据,但是在预测新样本的时候又会变得很糟糕,因为它导致数据的 过拟合(overfitting),不符合数据真实的模型。局部加权回归(LWR)是非参数学习方法。 首先参数学习方法是这样一种方法:在训练完成所有数据后得到一系列训练参数,然后根据训...
阅读(799) 评论(0)

[置顶] 斯坦福机器学习笔记(一)

近期把斯坦福的机器学习课程视频翻来覆去的看,通篇阅读英文笔记。总算把线性模型吃的比较透了,现在会陆续的上传笔记。如果想要转载请注明:http://blog.csdn.net/qq_30091945...
阅读(1284) 评论(0)

[置顶] 《机器学习实战》——Logistic回归

这是《机器学习实战》中的第五章Logistic回归知识的整理以及自己的一些私人理解,之后运用原理对周志华的《机器学习》中的西瓜数据进行分类。(PS:因为上述两本书以及网易公开课上的斯坦福的机器学习视频都在同时看,所以博客可能有点杂。)最后希望给一起学习机器学习的同学一些帮助。资源也已经上传了,名称叫做Logistic回归笔记及代码。链接为:http://download.csdn.net/detai...
阅读(836) 评论(0)

[置顶] PAT乙级考试经验分享

对于刚过去2016年冬季PAT乙级考试给大家分享下一下经验: 1 报名就不用多说了,准备好官网上该准备的材料,选择离学校最近的考点最好。特别是自我介绍那一块尤其重要,毕竟那是关乎就业,个人建议写满1000字,对于代码是否让相关企业看到的选项,个人觉得全选最好,毕竟多一份机会。2 对于刷题,报名成功后必须保证刷适量的习题,尽量保证能够在考试前熟悉所有的知识点。我已经把PAT乙级考试截止到2016...
阅读(1466) 评论(2)

[置顶] BP神经网络

利用BP神经网络解决蠓虫分类问题的Python代码如下:# -*- coding: utf-8 -*- """ Created on Tue Jan 17 12:22:53 2017@author: DaiPuWei """''' 神经网络模型---------BP神经网络,以蠓虫(Af,Apf两种类别)分类为例 利用梯度下降法为例 '''import pandas as pd im...
阅读(774) 评论(0)

[置顶] 时间序列(三)

修正指数曲线法Python代码如下:# -*- coding: utf-8 -*- """ Created on Sun Jan 15 15:36:15 2017@author: DaiPuWei """''' 时间序列修正指数曲线法,以收音机销售量为例 '''import pandas as pd import numpy as np import mathdef Check_Data(d...
阅读(361) 评论(1)

[置顶] 时间序列(二)

一次指数平滑法Python代码如下:# -*- coding: utf-8 -*- """ Created on Sat Jan 14 11:57:34 2017@author: DaiPuWei """ """ 时间序列一次指数平移法,以电器销售额的预测为例 """import pandas as pd import mathdef Index_Translation(data,alpha...
阅读(452) 评论(1)

[置顶] 时间序列(一)

Python代码如下:# -*- coding: utf-8 -*- """ Created on Fri Jan 13 11:20:10 2017@author: DaiPuWei """''' 时间序列简单平移法:以预测12月份的销售收入为例 '''import mathdef Forecast(profit,N,month): ''' 预测函数:profit为销...
阅读(543) 评论(1)

[置顶] 灰色系统预测GM(1,1)模型

预备知识 (1)灰色系统 白色系统是指系统内部特征是完全已知的;黑色系统是指系统内部信息完全未知的;而灰色系统是介于白色系统和黑色系统之间的一种系统,灰色系统其内部一部分信息已知,另一部分信息未知或不确定。 (2)灰色预测 灰色预测,是指对系统行为特征值的发展变化进行的预测,对既含有已知信息又含有不确定信息的系统进行的预测,也就是对在一定范围内变化的、与时间序...
阅读(5723) 评论(1)

[置顶] 马尔可夫链

练习题 在英国,工党成员的第二代加入工党的概率为 0.5,加入保守党的概率为 0.4, 加入自由党的概率为 0.1。而保守党成员的第二代加入保守党的概率为 0.7,加入工党的 概率为 0.2,加入自由党的概率为 0.1。而自由党成员的第二代加入保守党的概率为 0.2, 加入工党的概率为 0.4,加入自由党的概率为 0.4。求自由党成员的第三代加入工党的概 率是多少?在经过较长的时间后,...
阅读(403) 评论(1)
322条 共17页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:111871次
    • 积分:4404
    • 等级:
    • 排名:第7547名
    • 原创:322篇
    • 转载:0篇
    • 译文:0篇
    • 评论:71条
    博客专栏
    最新评论