记录学习点滴,菜鸟成长记堆排序引入了另一种算法设计技巧:使用一种我们称之为“堆”的数据结构来进行数据管理。堆排序算是真正意义上的利用数据结构来求解数组排序的方法。“插入排序”和“归并排序”可以看做是一种“计算机体力活”,体现的思想更多的是去模拟最简单的人类思维,比如插入排序过程中的比较,归并中子问题...
分类:
其他好文 时间:
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
概念:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。...
分类:
其他好文 时间:
2014-07-12 23:28:08
阅读次数:
362
用stl中的bsearch实现二分查找,解hdu2141。欢迎讨论...
分类:
其他好文 时间:
2014-07-12 17:17:43
阅读次数:
109
部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。我们一般提到排序都是指内排序,比如快速排序,堆排序,归并排序等,所谓内排序就是可以在内存中完成的排序。RAM的访问速度大约是磁盘的25万倍,我...
分类:
其他好文 时间:
2014-07-12 08:43:31
阅读次数:
313
http://blog.csdn.net/pickless/article/details/9191075Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e.,0 1 2 4 5 6 7migh...
分类:
其他好文 时间:
2014-07-11 09:14:04
阅读次数:
222
逆序对——高级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