二分查找又称折半查找,它是一种效率较高的查找方法。折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。
折半查找是一种高效...
分类:
编程语言 时间:
2014-05-16 07:10:02
阅读次数:
329
有序列表: 打开冰箱门 把大象放进去 关上冰箱门无序列表: 雪碧 可乐 凉茶
分类:
其他好文 时间:
2014-05-16 07:02:53
阅读次数:
251
希尔排序是由D.L.Shell于1959年提出的,所以称为希尔排序。希尔排序又称缩小增量排序,是插入排序的一种改进。
基本思想:希尔排序是基于插入排序的以下特点:待排序的序列元素数量越少排序速度越快;待排序序列的元素基本有序时排序速度越快;基于以上思想将待排序序列分为多个子序列分别进行插入排序,然后...
分类:
其他好文 时间:
2014-05-13 22:11:01
阅读次数:
272
顺序查找的时间复杂度是O(n),如果数组一开始是有序的,那么用顺序查找的效率是比较低的,因为二分查找等方式能够拥有更低的时间复杂度,但是如果一开始是无序的,那么顺序查找有可能比其他查找更加的快速。
二分查找主要是应用在有序的数组织中,采取的是一种分治的思想,先在数组中去中值,然后将中值...
分类:
其他好文 时间:
2014-05-13 20:27:07
阅读次数:
251
快速排序原理:
快速排序先把等待排序的集合打乱顺序,把第一个元素作为基准元素,为第二个元素和最后一个元素分配两个指针i和j,如果a[i]小于基准元素则i++,如果a[j]大于基准元素则j--,这样把大于基准元素的a[i]和小于基准元素的a[j]互换,以此类推,最终把基准元素与a[j]相交换,就得到一个a[j]左侧全部小于a[j],右侧全部大于a[j]的一个近似有序数组,然后按照如上步骤重新寻找每个被a[j]分开的数组中的分隔点,最终得到有序数组。
在通用排序中,一般都会选取快速排序来解决问题。...
分类:
其他好文 时间:
2014-05-13 07:40:24
阅读次数:
290
广播被分为两种不同的类型:“普通广播(Normal
broadcasts)”和“有序广播(Ordered broadcasts)”。
普通广播是完全异步的,可以在同一时刻(逻辑上)被所有接收者接收到,相对有序广播消息传递的效率比较高,
但缺点是:接收者不能将处理结果传递给下一个接收者,并且无...
分类:
其他好文 时间:
2014-05-12 20:08:45
阅读次数:
370
Mergeksorted linked lists and return it as one
sorted list. Analyze and describe its
complexity.思路:合并k个有序链表为一个有序链表。我们可以用先合并两个链表的方法,然后逐个遍历链表数组,与上一个合并结束...
分类:
其他好文 时间:
2014-05-12 15:07:06
阅读次数:
305
归并排序也是基于分治思想的一种排序算法,是通过对两个或两个以上的有序序列合并来实现的,对两个序列合并的叫两路归并,对两个以上序列合并的叫多路归并。归并排序的时间复杂度也为O(N*logN)。下面来看一下两路归并的实现:基本思想:归并排序时先找出序列的中间元素把序列分解为两个子序列,对子序列重复这个过...
分类:
其他好文 时间:
2014-05-12 05:47:59
阅读次数:
298
Iron之职责链需求:"Iron"的建造一直没有停止,现在单个部件是有的,但是在部件从工厂里出来的时候,在组装到一起之前,我们还是非常有必要对部件进行质量检测,或者是其它个方面的检测,又或者是设置部件标识信息等等,这些操作可以是有序的(也可以是无序的)。现在为了实现上..
分类:
其他好文 时间:
2014-05-12 02:58:49
阅读次数:
317
[可并堆与左偏树]我们最常用的二叉堆,是最常用的优先队列,它可以在O(logN)内实现插入和删除最小值操作。但是对于合并两个有序的优先队列,二叉堆就显得力不从心了。左偏树是一种可并堆(MergeableHeap),意思是可以在O(logN)时间内完成两个堆的合并操作。左偏树(LeftistTree)...
分类:
其他好文 时间:
2014-05-12 00:51:29
阅读次数:
292