排序
文章平均质量分 57
_IanXiao
这个作者很懒,什么都没留下…
展开
-
PAT1080 Graduate Admission (30)
题目链接: http://www.nowcoder.com/pat/5/problem/4310题目描述:(1)分数分为Ge和Gi两部分,按照总分给学生排名次,如果总分一样,则按照Ge来排; (2)每个学生都有几个志愿,按照志愿高低给学生分配学校; (3)对于名次一样又报了同一学校的学生,该学校只要接收了一个就得接收全部,即便超出了原定的招生名额;题目分析:每次模拟题写得总是很冗长的感觉啊原创 2016-01-29 16:01:18 · 1095 阅读 · 0 评论 -
PAT1056 Mice and Rice (25)
题目链接: http://www.nowcoder.com/pat/5/problem/4109题目描述:这题啊…..好难懂啊。 输入描述: 11 3 25 18 0 46 37 3 19 22 57 56 10 6 0 8 7 10 5 9 1 4 2 3 输出: 5 5 5 2 5 5 5 3 1 3 5输入的第三行是初始比赛顺序。 第6、0、8个mice先组成一组进行比较,原创 2016-01-29 22:18:01 · 668 阅读 · 0 评论 -
归并排序的3种实现
归并排序适用于外部排序,是一种稳定的排序。算法很很好的体现了分治法的思想。 时间复杂度O(nlogn)(最好最坏平均都是它) 空间复杂度O(n) (如果使用的是链表,空间复杂度为O(1))数组递归实现:void Merge(int* arr,int* tmp,int left,int right,int rightEnd){ int leftEnd = right-1; int原创 2016-04-18 22:34:20 · 637 阅读 · 2 评论 -
使序列有序的最少交换次数
题目1:给出一个序列,只交换相邻两数,使得序列升序排列,求出最少交换次数。思路:如果说只是交换相邻两个数字。那么就是这个序列的逆序数。1.假设序列个数为n,我们先把最大的数换到最后,因为是相邻数字交换,所以把最大数交换到最后,需要交换的次数为最大数后的数字个数。2.当完成最大数的交换后,可以将最大数从序列中划去不管了,即此时序列个数为n-1了,我们再在该序列中找到一个最大数,进行相同操作。3.所以使原创 2016-04-14 16:12:43 · 14885 阅读 · 2 评论 -
快速排序递归与非递归实现
算法概述:分而治之。选出一个元素作为主元,它可以把集合中的元素分成两部分,一部分都是大于它的,一部分都小于它的。我们先用伪代码描述。void QuickSort(ElementType A[],int N){ //如果只剩一个元素了直接返回 if(N<2) return; pivot=从A[]选出一个主元; 将S={ A[]\pivot }分成两个独立的子集; A原创 2016-04-19 23:05:00 · 735 阅读 · 0 评论