记录学习点滴,菜鸟成长记堆排序引入了另一种算法设计技巧:使用一种我们称之为“堆”的数据结构来进行数据管理。堆排序算是真正意义上的利用数据结构来求解数组排序的方法。“插入排序”和“归并排序”可以看做是一种“计算机体力活”,体现的思想更多的是去模拟最简单的人类思维,比如插入排序过程中的比较,归并中子问题...
分类:
其他好文 时间:
2014-07-14 09:42:06
阅读次数:
235
归并排序基本思路就是将数组分成二组A,B,如果这二组组内的数据都是有序的,那么就可以很方便的将这二组数据进行排序。如何让这二组组内数据有序了?可以将A,B组各自再分成二组。依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的二个小组就可以了。这样通过先递归的分...
分类:
其他好文 时间:
2014-07-14 09:24:53
阅读次数:
132
题目:输入:给定一个文件,里面最多含有n个不重复的正整数(也就是说可能含有少于n个不重复正整数),且其中每个数都小于等于n,n=10^7。输出:得到按从小到大升序排列的包含所有输入的整数的列表。分析: 1、归并排序。你可能会想到把磁盘文件进行归并排序,但题目要求你只有1MB的内存空间可用,所以,归并...
分类:
其他好文 时间:
2014-07-14 08:47:29
阅读次数:
241
1 #include 2 #include 3 4 void Meger(int A[],int p,int q,int r)//A为数组,p,q,r分别为下标 5 { 6 int n1 = q-p+1; //前半部分长。 7 int n2 = r-q; //后半部分长。 8...
分类:
其他好文 时间:
2014-07-13 08:12:31
阅读次数:
255
本周集训专题为DP系列,一个经典的系列便是石子归并问题。(1)有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动相邻的2堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并成一堆的总花费最小(或最大)。这是石子归并的简化版本,石子处于一排。由于发现只能是相邻的2堆石子进行归并...
分类:
其他好文 时间:
2014-07-12 09:03:38
阅读次数:
180
部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。我们一般提到排序都是指内排序,比如快速排序,堆排序,归并排序等,所谓内排序就是可以在内存中完成的排序。RAM的访问速度大约是磁盘的25万倍,我...
分类:
其他好文 时间:
2014-07-12 08:43:31
阅读次数:
313
逆序对——高级Time Limit:1000MSMemory Limit:65536KTotal Submissions:118Accepted:28Description对于一个包含N个非负整数的数组A[1..n],如果有i A[j ],则称(A[ i] ,A[ j] )为数组A中的一个逆序对。 ...
分类:
其他好文 时间:
2014-07-11 09:10:45
阅读次数:
225
题目:Given two sorted integer arrays A and B, merge B into A as one sorted array.Note:You may assume that A has enough space (size that is greater or eq...
分类:
其他好文 时间:
2014-07-10 14:41:23
阅读次数:
177
(1)快速排序算法以及应用快速排序中划分的思想求数组中第k小的数,最小的前k个数。(2)归并排序算法以及利用归并排序计算数组的逆序对数。(3)堆排序...
分类:
其他好文 时间:
2014-07-05 23:03:20
阅读次数:
324