程序设计与算法(二)算法基础
文章平均质量分 78
龙星尘
现在正在学硬件和软件编程,用的是C++和Arduino编程工具,以后会发一些关于编程的文章!请大家多多关照!
展开
-
2019普及组总结
按照暑假每一个星期进行一次往年的普及组模拟考试的规矩,就在昨天,我模拟了2019年的普及组,前面3道题我花了一个半小时就全部通过,剩下的时间我一直都在钻研最后一道题,依旧是没有满分,最后一道题只得到了80分,总分是380分!...原创 2022-07-26 11:07:43 · 206 阅读 · 1 评论 -
2020普及组总结
上周,我说过了,每周进行一次往年的普及组模拟赛,昨天我就考了一次,最终得分是300分,不是第四题没有搞出来,反而是第三题没有搞出来,因为第三题是一道数据结构的题目,应该用二叉树来解决,而我连学都没有学过,暴力也出不来,就得了个“鸭蛋”!...原创 2022-07-19 10:53:21 · 268 阅读 · 1 评论 -
2021普及组总结
就在昨天,我写了一篇关于我这一年来的算法总结,同时也进行了2022普及组的模拟考,内容是2021年的普及组题目,和比赛一样,3个半小时,一分不少,从下午3:00到6:30。 今天,我就给大家总结一下2021年普及组的各个题目,我呢,是从“牛客竞赛网”上面找到的,因为我填的入门组难度,所以它就给我推荐往年的普及组题目。 这是我第一次模拟考,以后每一个星期就来一次模拟考,不用4个月,所有以前的普及组竞赛题就会被我全部刷完了,每次我都会写一次总结。 这一天,我过得很充实!......原创 2022-07-12 11:53:04 · 405 阅读 · 1 评论 -
算法总结
在2020年的时候,我第一次接触了C++编程,那时的我是一位三年级的小学生,觉得挺好玩的,爸爸就给我推荐了一门课程“程序设计与算法(一)C语言程序设计”,是由北京大学郭炜老师讲解的,他可是北京大学信息学院教师,担任北京大学ACM国际大学生程序设计竞赛队教练多年,北京角斗士软件技术有限公司创始人。 我从二进制、十进制学起,知道了信息在计算机中的表达方式,学完了入门部分之后,就可以开始做题了,经过郭炜老师的推荐,我找到了一个做题网站OpenJudge,在里面有着郭炜老师创建的小组,里面是每一个单元的例题..原创 2022-07-11 11:15:51 · 653 阅读 · 1 评论 -
归并排序
上期我跟大家讲了快速排序,复杂度非常的不稳定,归并也是一个广泛运用的排序算法,为什么呢?稳定,快速递归调用,分治思想合并两个有序数组的思想时间复杂度O(nlog2n),这个时间复杂度的分析方法很重要一定要掌握归并排序非常的稳定,时间复杂度不论是平均,还是最好,还是最坏,复杂度都是O(nlog2n),几乎是一成不变的。算法描述把长度为n的输入序列分成两个长度为n/2的子序列;对这两个子序列分别采用归并排序;将两个排序好的子序列合并成一个最终的排序序列。...原创 2022-06-05 11:40:14 · 135 阅读 · 1 评论 -
快速排序
快速排序为什么那么快: 快速排序之所以比较快,是因为与冒泡排序相比,每次的交换时跳跃式的,每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样每次只能在相邻的数之间进行交换,交换的距离就大的多了。因此总的比较和交换次数就少了,速度自然就提高了。当然在最坏的情况下,仍可能是相邻的两个数进行了交换。因此快速排序的最差时间复杂度和冒泡排序是一样的都是O(n^2),但是快速排序的平均复杂度就是O(nlogn).原创 2022-06-05 11:14:44 · 238 阅读 · 1 评论 -
表达式求值
描述:输入为四则运算表达式,仅由数字,+,-,*,/,()组成,没有空格,要求求其值。假设运算符算出来的结果都为整数,‘/’也是整数。输入:一串四则运算表达式输出:该表达式的值样例输入1:(6+4)*5样例输出1:50样例输入2:5+9/3-4样例输出2:4 这道题我们可以用递归的方法来解决,我们可以用三个函数来进行解决,第一个函数是来判断用括号内的,也是来判断哪几个数相加相乘......转移到相对于的函数上面,第二个函数是专门来处理运算符..原创 2022-05-05 22:05:10 · 786 阅读 · 1 评论 -
n的阶乘
今天,我学习了递归算法的第一课,介绍了关于递归的基本思想:“在一个函数里调用这个函数,就是递归算法”。第一题是编写一个函数,运用递归算法,来写出n的阶乘加起来是什么。原创 2022-04-16 20:39:25 · 452 阅读 · 1 评论 -
枚举的基本思想“完美立方”
程序设计与算法(二)算法基础的第一课就是枚举算法,总共有五课,每一课都是关于枚举的例题,我刚刚听了第一课“枚举的基本思想”,介绍了枚举的基本用法!基于逐个尝试答案的一种问题求解策略例如:求小于N的最大质数 1.找不到一个数学公式,使得根据N就可以计算出这个质数计算出这个质数2.依次判断N-1是质数吗?N-2是质数吗3.运用(for(int i=1;i<N;i++))之中来判断N-1是否是质数原创 2022-03-22 23:00:19 · 932 阅读 · 3 评论