![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 51
天才少女LUY
这个作者很懒,什么都没留下…
展开
-
利用最小堆完成有理数的类定义以及有理数逻辑运算
一、要求:完成有理数的类定义以及有理数逻辑运算函数class Rational{friend bool operator<(const Rational& r1, const Rational& r2) {}friend bool operator<=(const Rational& r1, const Rational& r2) {}friend bool operator>(const Rational& r1, const Rati原创 2022-01-15 12:23:09 · 325 阅读 · 0 评论 -
壕排序(对元素排序,其中元素前移要减一,后移要加一,最后为升序)
1.题目描述壕班学生排队取快递,要是看到前面学生手机里的零用钱比自己少就不爽,就赏给前面的人1块钱,然后跟他交换位置。全班所有学生都这么"壕",容不得比自己“穷”的学生排自己前面,于是一个队伍就不停的交换,直到没人不爽为止。但是有时候却会出现无法排序的情况,导致某些人在那里永无休止的换位子。输入格式:输入第一行给出正整数N,表示壕班学生人数(1<N<30000)。第二行给出N个正整数,第i个数值表示最初排在第i位的学生手机里的零钱数目 (1≤i≤N)。相邻数值间用空格分开。所有数值都在区间原创 2021-11-22 17:25:19 · 760 阅读 · 0 评论 -
最多K次交换冒泡排序
1. 题目描述冒泡排序(bubble sort)通过在序列中不断比较和交换相邻的两个元素,最终把所有元素按升序排列。规定相邻元素的交换次数不超过K, 比较次数没有限制,求冒泡排序能生成的字典序最小序列。输入格式:第一行输入两个正整数N和K (1<N≤10^3), 1≤K≤N(N−1)/2);接下来一行输入N个整数,用空格分开。 所有整数值都在区间[0,10^5]内。输出格式:在一行中输出排序后的N个整数,用空格分开,末尾的数值后面没有空格。输入样例1:3 12 1 0输出样例原创 2021-11-15 17:52:36 · 1198 阅读 · 0 评论 -
用动态规划算法求数列中三个数的最大值,且该三个数的下标间距需大于等于K
1. 题目描述程序设计竞赛的参赛队伍通常由3人组成。如何从学生中选出三人组成最强的队伍而又不失公平(即不让选出的学生均集中在个别班级里)呢。虽然每个班级的学生人数有出入,但上限是固定的,并且同一个教学班的学生其学号是连续编号的,由此设计出一个即公平(每个班最多选1人)又便利(不用分班)的最强队伍选择方法。输入格式:输入两行数据,第一行给出两个正整数N和K,表示学生总人数和班级人数上限,满足2K<N≤10^5(至少有三个班)。接下来一行给出N个正整数,用空格分开,依次表示从学号0到学号N-1的学生原创 2021-11-01 09:00:00 · 200 阅读 · 0 评论 -
序列最小元素存储栈
方法概述要找出一个序列中当前元素中的最小元素,或是找出第i个元素之前比第i个元素小的元素值,方法一:遍历序列,得出上述问题的解。时间复杂度为O(n)。方法二:用一个栈存储当前元素中的最小值。栈的第i个元素存储的是序列从0~i的元素中的最小值。时间复杂度为O(1)。要找出序列当前最小值,只需要弹出栈顶元素即可,要找出多个,只需要一直判断stack.top()<i是否成立,如果成立则继续弹出,直到条件不再成立。示例:例题:炒股神器大师的神器有两个功能:第一,设置N天为一个周期,除最后原创 2021-10-21 17:36:40 · 188 阅读 · 2 评论