排序
文章平均质量分 65
kaiweisun
这个作者很懒,什么都没留下…
展开
-
poj 2388
题意大概是农场主要找出体重处于中间的母牛,实际上是要求在规定时间内给出一组数据的中间数,说白了,就是各种排序,数据的个数是奇数,n/2正好处于中间,可以用STL模板,也可以不用,代码分别如下:代码一:不用STL模板。自己写的快速排序:#include <iostream>using namespace std;const int Max=10002;void ...原创 2011-10-25 15:02:40 · 143 阅读 · 0 评论 -
排序算法总结
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 冒泡排序是稳定的,算法时间复杂度是O(n ^2)。 2.2 选择排序(Selection Sort) 选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前i个记录的...原创 2013-05-17 11:00:28 · 88 阅读 · 0 评论 -
poj 1974
题意:有一只蠕虫居住在一个m*n大小的网格中,在网格的某些位置放置了k块石头,当蠕虫睡觉时,它在水平方向或垂直方向上躺着,把身体尽可能伸展开来,蠕虫的身体既不能进入到放有石块的方格中,也不能伸出网格外,而且蠕虫的长度不会短于2个方格的大小.现在给定一网格,要求计算蠕虫可以在多少个不同的位置可以躺下睡觉.题目中有两点需要注意: 1>当蠕虫睡觉时,它在水平方向或垂直方向上躺...原创 2012-03-29 16:38:41 · 686 阅读 · 1 评论 -
poj 1971
题意:给出你一堆坐标点,让你求出这些点组成的平行四边形的个数思路:求出这些点组成的点组成的线段的重点,如果两条线段的中点相同,则这两条线段组成一个平行四边形。 代码如下:#include <iostream>#include <algorithm>using namespace std;struct point { int x,...原创 2012-03-29 14:43:35 · 127 阅读 · 0 评论 -
poj 1928
题意:题意:dodo要在规定时间内拿peanut,每次拿peanut都是从最多的那堆拿起,因此需要将peanut的数量从大到小排序,走路的规则:1.从road走到field需要一个单位时间2.在方格内走每一个格的时间是一个单位时间3.每捡起一堆peanut要用一个单位时间4.从field走到road需要一个单位时间思路:题目中提到"根据鲁兵逊先生的要求,多多首先走到花生最多的植株,采摘这颗植株...原创 2012-03-29 10:56:40 · 105 阅读 · 0 评论 -
poj 1877
问题:有一块由N*M个正方形构成的地形,每块面积是100平方米,每一块都有自己的海拔。假定雨水不会流出边界,不会渗入地下,问当降雨量为v时,会有百分之多少被雨水覆盖。解题思路: 由于题目中特别声明水无论如何都会流到当前水面最低的地方,使得问题一下子简化了。很容易想到以下贪心算法:1) 把每个格子的高度排序;2) 以低格子到高格子的顺序填水,把水均匀的铺在当前的水面上,并不断更新当前水面面积...原创 2012-03-28 16:10:47 · 238 阅读 · 0 评论 -
poj 1318
题意:给定一个字典,字典里最多有100个单词,每个单词最多6个字母,输入:按照一定的方式输入字母,看在字典中是否有具有相同字母的单词,若有,将其输出,若无输出NOT A VALID WORD思路:先将字典中的字符串转化为标准形式,即按字典序。判断一个字符是否能由另一个重新排列,只需判断其标准形式是否相等。先找出能相互转化的,再对其排序输出。采用了2种快速排序,一种用来得到其标准序列,另一个对满...原创 2012-03-23 17:35:30 · 146 阅读 · 0 评论 -
poj 2380
题意:这道题想了很久很久才理解题意。题目描述很简单,就是给出几组数据,分别表示商品的id号,商品的销售点,以及商品在销售点的销售额。目的要求你给出一个数组,其中数组的首行按照商品的id号从小到大排列,首列按照商品的销售点从小到大排列,数组里面的值代表某件商品在某个销售点的销售额。思路分析:刚开始考到这个题目的时候,觉得无从下手,结果思考一下,发现这个也仅仅是个排序题而已。只需要将商品的id号升...原创 2012-03-15 21:17:34 · 114 阅读 · 0 评论 -
poj 2377
题意:Bessie为了报复雇主,决定将雇主让他做的工作竟可能的做得很糟糕,他的想法如下: 1>使整个网络的花费竟可能的最大; 2>保证建成的网络是连通图,即任意两定点之间都存在路径; 3>建成的网络没有环(即回路)存在. 现在要求建成该网络的最大花费,如果建成的网络...原创 2012-03-15 16:02:23 · 101 阅读 · 0 评论 -
poj 2376
题目描述:有N头牛要擦长度为len的地板(起始位置从1开始),给你每头牛能够擦地板的区间,要求,地板必须全被擦到,求出最少需要几头牛可以完成任务。如果不能使所有的地板都被擦到则输出-1. 解题思路:贪婪算法。设每头牛擦地板的区间为xi-yi,则先按照xi从小到达排序,如果xi的值相同,则按照yi的值从大到小排列,显然如果x1>1,则输出-1.因为1-2的地板没有牛可以擦。设...原创 2012-03-14 15:43:40 · 105 阅读 · 0 评论 -
poj 1838
题意:有一只猴子喜欢吃香蕉,但他只能在相邻的两棵香蕉树之间行动,如果两棵树是在横方向或竖方向相邻的,那么这就组成一个区域,这个区域内猴子可以随意走动,有人可以把k个区域连接起来,从而使猴子在这k个区域内随意行动,问猴子最多可以在多少棵树内走动?给定n个树的坐标,和k。思路:由于是区域相连接,所以可以想到用并查集这个数据结构进行操作。使用并查集来对这n个点进行操作,最后选出前k个最大的根节点相加...原创 2012-03-09 09:44:26 · 117 阅读 · 0 评论 -
poj 1828
题意:这道题目是求猴王到底有多少个,猴王的定义是 以他为坐标的。。。没有点的x轴和y轴均大于他,那么这个猴子就被成为猴王,显然猴王不只一个。开始我还一直以为猴王不是一个就是两个。解题思路:首先将输入的猴子按照位置排序,先按x从小到大排列,若x相同则再按y从小到大排列,然后对于排序好的数组,按照从后到前的顺序扫描,由于前面的猴子x不比后面的猴子x大,则若要当大王则必须要y比其后最大的y要...原创 2012-03-08 14:30:18 · 128 阅读 · 0 评论 -
poj 1788
题意:其实这道题英文描述挺复杂,但是看清楚题目的要求之后发现,这道题的实际意图就是求一个规则多边形的边长,而且由于两两的点都是在一条直线上,所以也没有必要去计算欧式距离,只需要对点进行排序就行了。先对X点就行排序,再对Y点进行排序即可,这道题就是一个根据两次排序来求边长的题 思路只要清楚了就好计算了,代码如下#include <iostream>#include <a...原创 2012-03-08 10:45:06 · 138 阅读 · 0 评论 -
poj 2299
题意:给出一个长度为n的数列,你每一次可以随意交换其中两个数字的位置。问你至少交换几次,才能使得这个数列是个单调递增数列。思路:逆序数。归并排序求逆序数: 归并排序主要是二路归并排序,采用分治的思想:对于某个数组a[n]排序,先将前半部分排序,再将后半部分排序,最后归并两部分。归并排序是一种稳定的排序方式,且时间复杂度为O(n*log2n)。归并排序还可以求一串数中的逆序数。在归并相邻...原创 2011-10-25 23:52:36 · 597 阅读 · 0 评论 -
数据结构-排序问题
排序分为以下几大类:a:插入排序;b:选择排序;c:交换排序;d:归并排序;e:基数排序。 a:插入排序:分为直接插入排序与希尔排序。直接插入排序的思想是:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n...原创 2011-10-25 16:40:28 · 253 阅读 · 0 评论 -
poj 2021
题意:Ted今年100岁,给出n对他家族的关系:“父亲名,孩子名,生孩子时父亲年龄”,求出家族所有人现在的岁数。思路:基础题,可以用bfs做。要注意排序输出时,当年龄相同,要按姓名的字典顺序输出。代码如下:#include<iostream>#include<cstring>#include<algorithm>using ...原创 2012-04-19 15:00:26 · 206 阅读 · 0 评论