这个题目是个水题目,现在我只管做出来,效率不考虑了。 题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=904 我用hashmap 很爽,很简单,但效率很低,别人有的是用二分查找,不管了, package nyoj904;import ja...
分类:
其他好文 时间:
2014-06-25 22:42:59
阅读次数:
301
插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,终于将全部无序区元素都移动到有序区完毕排序。要点:设立哨兵,作为暂时存储和推断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;/...
分类:
其他好文 时间:
2014-06-25 16:47:57
阅读次数:
183
/*二分查找的递归与非递归算法*/#include #include using namespace std;bool bisrch( int low,int high,int v,int *text ) //递归写法{ int i,mid; mid=( low+high )/2; ...
分类:
其他好文 时间:
2014-06-25 13:51:56
阅读次数:
174
算法一:快速排序算法
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来。
快速排序使用分治法(Divideandconquer)策略来把一个串...
分类:
其他好文 时间:
2014-06-25 08:29:57
阅读次数:
178
题目链接在:针对一群范围对的最快查找算法设计(不要用数组),是我目前遇到的一个较棘手的问题。
描述如下:
假如有一群范围对,格式为:,设计一个最快查找算法,使得给定一个值,输出该值所在范围对的结果值。
注意:范围对之间没有交集,即不可能存在和这样的两个范围对。
例如有以下几个范围对:
, 20>
, 27>
, 28>
, 27>
, 122>
, 12>
, 13>...
分类:
其他好文 时间:
2014-06-24 17:37:56
阅读次数:
172
本篇博文没太多要说的,二分查找很简单,也是常见常考的查找算法,一下是递归非递归的实现。
非递归实现:...
分类:
其他好文 时间:
2014-06-24 17:14:34
阅读次数:
224
插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,终于将全部无序区元素都移动到有序区完毕排序。要点:设立哨兵,作为暂时存储和推断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;/...
分类:
其他好文 时间:
2014-06-23 00:37:10
阅读次数:
272
二分插入排序 也称折半插入排序,
1、基本思想:设数列[0....n]分为两部分一部分是[0...i]为有序序列,另一部分是[i+1.....n]为无序序列,从无序序列中取一个数
x ,利用二分查找算法找到 x 在有序序列中的插入位置并插入,有序序列还是有序的,接下来重复上述步骤,直到无序序列全部插入有序序列 ,这是整个序列只剩下有序序列即有序了。
2、代码:
{...
分类:
其他好文 时间:
2014-06-22 22:33:03
阅读次数:
187
归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
算法步骤:
1. 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
2. 设定两个指针,最初位置分别为两个已经排序序列的起始位置
3. 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到...
分类:
其他好文 时间:
2014-06-22 14:22:14
阅读次数:
187