程序设计
youlin121
这个作者很懒,什么都没留下…
展开
-
排序算法中遇到的问题
冒泡排序的改进方式法1.设置boolean标志,判断是否有进行交换法2.每次循环找出最大的放在右边的同时,找出最小的放在左边。参考https://www.jianshu.com/p/f879dc556bc5原创 2020-05-19 16:21:31 · 1519 阅读 · 0 评论 -
算法练习中遇到的问题
c/c++ 获取数组长度在C/C++中并没有提供直接获取数组长度的函数c/c++ 获取数组长度其中一种方法是使用sizeof(array) / sizeof(array[0])。参考https://blog.csdn.net/z_qifa/article/details/77835722原创 2020-05-19 16:17:13 · 422 阅读 · 0 评论 -
C/C++中GCC与G++的区别
C/C++中GCC与G++的区别背景区别背景之前大致知道G++用来编译C++,GCC用来编译C,但是具体的区别还不太清楚,今天看了一篇文章又了解了一点。区别gcc是GCC中的c编译器g++是GCC中的c++编译器对于后缀为.c的文件,gcc当成c文件处理,而g++当成c++处理对于后缀为.cpp的文件,两者都当成.cpp文件处理在编译阶段,g++会自动链接STL库,而gcc必须要...转载 2020-04-25 12:04:15 · 444 阅读 · 0 评论 -
递归的作用
同一个问题可能有多种解法,但是在处理同一个问题的时候,不同的算法有不同的时间复杂度,例如:题目:输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l和r。对于每个询问,输出原序列中从第l个数到第r个数的和。简单算法:(时间复杂度是:O(n*m))递归算法:(时间复杂度是: O(n+m))总结:简单算法使用两重循环,时间复杂度比加大,而使用递归算法...原创 2020-04-19 11:33:30 · 1445 阅读 · 0 评论 -
堆2--合并果子
1369:合并果子【题目描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时...原创 2020-04-04 13:52:50 · 356 阅读 · 0 评论 -
队列2--例2.1周末舞会
例2.1周末舞会-1332【题目描述】假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。【输入】第一行两队的人数;第二行舞曲的数目。【输出】配对情况。算法分析:设计两个队列分别...原创 2020-03-25 13:04:34 · 1065 阅读 · 0 评论 -
栈6--括弧匹配检验
1354:括弧匹配检验【题目描述】假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错误的匹配。现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“W...原创 2020-03-20 23:49:22 · 568 阅读 · 0 评论 -
栈5--例1.3车厢调度(train)
【题目描述】有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n≤1000),分别按照顺序编号为1,2,3,…,n。假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到B处的铁轨上。另外假定车站C可以停放任意多节车厢。但是一旦进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨,它就不能再回到...原创 2020-03-16 12:41:02 · 2306 阅读 · 1 评论 -
栈3--括号的匹配
例1.1括号的匹配【问题描述】假设一个表达式由英文字母(小写)、运算符(+、一、*、/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检査表达式中的左右圆括号是否匹配,若匹配,则返回“YES”,否则返回“NO”。假设表达式长度小于255,左圆括号少于20个。算法分析:假设输入的字符串存储在c中(char c[256])可以定义一个栈:char s[m...原创 2020-03-14 13:00:47 · 480 阅读 · 0 评论 -
栈2--堆栈数组模拟
开始学习栈之间,通过数字进制之间的转换来熟悉栈的先进后出(LIFO)思想。//堆栈的数组模拟#include<iostream>using namespace std;//数据初始化const int size=100;int a[size+1];//处理函数int main(){ //数据初始化 int n,d,i=0,j; cout&...原创 2020-03-14 11:59:09 · 93 阅读 · 0 评论 -
栈1--介绍
栈是一种特殊的线性表,遵循先进后出的原则,在算法题中比较常见。原创 2020-03-14 11:12:32 · 356 阅读 · 0 评论 -
动态规划9--例9.9最长公共子序列
1265:【例9.9】最长公共子序列【题目描述】一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1,x2,…,xm>,则另一序列Z=<z1,z2,…,zk>是X的子序列是指存在一个严格递增的下标序列<i1,i2,…,ik>,使得对于所有j=1,2,…,k有:Xij=Zj例如,序列Z=<B,C,D,B>...原创 2020-03-07 12:58:46 · 1170 阅读 · 0 评论 -
动态规划8--例9.8合唱队形
1264:【例9.8】合唱队形【题目描述】N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K,他们的身高分别为T1,T2,…,TK,则他们的身高满足T1<T2<…<Ti,Ti>Ti+1>…>TK(1≤i≤K).你的任务是,已知所有N位同学的身高...原创 2020-03-06 14:43:37 · 2568 阅读 · 0 评论 -
动态规划7--例9.7友好城市
1263:【例9.7】友好城市【题目描述】Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,但是由于河上雾太大,政府决定避免任意两条航道交叉,以避免事故。编程帮助政府做出一些批准和拒绝申请的决定,使得在保证任意两条航线不...原创 2020-03-06 13:15:39 · 569 阅读 · 0 评论 -
动态规划3-例9.3最长不下降子序列
例9.3最长不下降子序列//设有由n个不相同的整数组成的数列,记为:b(1),b(2)...b(n)且b(i)<>b(j)(i<>j),//若存在i1<i2<i3<...<ie且有b(i1)<b(i2)<...<b(i3),则称为长度为e的不下降序列。//程序要求,当原数列出之后,求出最长的不下降序列//算法分析//根...原创 2020-03-05 15:19:25 · 1085 阅读 · 0 评论 -
动态规划2---例9.2数字金字塔
例9.2数字金字塔观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到右下方的点方法一:从最高点按照规则走到最低点的路径的最大的权值和,路径起点终点固定,走法规则明确,可以考虑用搜索算法定义递归函数 void Dfs(int x,int y, int Curr),其中x,y表示当前已从(1,1)走到(x...原创 2020-03-05 15:16:57 · 2411 阅读 · 0 评论 -
freopen---C++输入输出
在做算法题的时候碰到的一个问题:在主函数中如果使用freopen的时候,再使用while(cin>>a[i])输入数据,运行的时候就会立即终止,开始我以为是两个不能一起用,但是书上显示是可以一起的,所以我特意在网上搜了一下。原因:使用freopen函数的时候没有在工程下新建in文件,也就是说一直没有收到数据(我开始以为会自动创建,输入文件不会自动创建,输出文件可以自动创...原创 2020-03-04 11:15:09 · 3435 阅读 · 0 评论 -
宽度优先搜索遍历算法-8.4迷宫问题
例8.4迷宫问题如图所示,给出一个n*m的迷宫图和一个入口、一个出口编写一个程序,打印从一条从迷宫入口到出口的路径。这里黑色方块的单元表示走不通(用-1表示),白色表示可以走(用0表示)只能往上、下、左、右四个方向走。如果无路则输出“no way"算法分析:只要输出一条路径即可,所以是一个经典的回溯算法问题和之前的最少步数很类似,都是通过判断四个方向是否可走, 不过不同的是这一题是...原创 2020-02-19 12:08:32 · 1190 阅读 · 0 评论 -
广度优先搜索算法3-例8.3 最少步数
例子8.3 最少步数在各种棋中,棋子的走法总是一定的,如中国象棋马走日。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他归档马既能按日走,也能如象一样走田字。在一个100*100的围棋盘上任选连点A.B。A点放上黑子,B点放上白子,代表两匹马。棋子可以走日字也可以走田字,两个人一个人走 黑马,一个人走白马。谁用最少的步数走到左上角坐标为(1,1)的点时,谁就获胜。现在他请你...原创 2020-02-17 20:47:42 · 2219 阅读 · 0 评论 -
广度优先搜索遍历2-一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞
例8.2一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数分析1.从文件中读入m*n矩阵阵列,将其转换为boolean矩阵存入bz数组中2.沿bz数组矩阵从上到下、从左到右,找到遇到的第一个细胞3.将细胞的位置入队h,并沿其上下左右四个方向上的细胞位置入队,入对后的位置bz数组置为false4.将h队的...原创 2020-02-16 14:27:03 · 6264 阅读 · 0 评论 -
oj心得
4.使用OJ的时候注意方法c.注意使用两个文件的比对方法b.冒泡容易出现内存溢出或超时,C++中有sort函数,类似快排算法,但要在头文件加上#include<algorithm>,效率较高。a.可以通过提交结果发现自己的错误原因3.自己电脑运行程序没有问题,但OJ上却wrong answer总是有错误的原因:e.今天做了一个纸牌分堆的问题,答案是运行出来了,但是提...原创 2019-12-02 20:06:14 · 452 阅读 · 0 评论 -
Inspection info: This inspection analyzes method control and data flow to report possible conditions
练习算法题的时候遇到这个错误:Condition 'n<5' is always 'true'" less.. (Ctrl+F1)Inspection info: This inspection analyzes method control and data flow to report possible conditions that are always true or fals...原创 2019-09-26 18:11:22 · 2550 阅读 · 0 评论 -
oj常见错误
1.Main.java:7: error: class Daffodil_number is public, should be declared in a file named Daffodil_number.java public class Daffodil_number解决:使用oj里面的模板,不要自己写类名2.Main.java:8: error: cannot find...原创 2019-09-21 15:36:32 · 3327 阅读 · 1 评论