奇偶排序
奇偶排序是排序方法的一种,复杂度为O(n^2)好处是可以利用处理器的并行。第一遍扫描a[i] a[i+1]
i为奇数,如果这两个次序不正确,就交换它们的次序。第二遍扫描偶数。
双调排序
所谓双调序列(Bitonic Sequence)是指由一个非严格增序列X和非严格减序列Y构成的序列,比如序列(23,10,8,3,5,7,11,78)。
定义:一个序列a1,a2,…,an是双调序列(Bitonic Sequence),如果:
(1)存在一个ak(1≤k≤n), 使得a1≥…≥ak≤…≤an成立;或者
(2)序列能够循环移位满足条件(1)
双调查找
在双调序列中找到给定整数,要求时间复杂度O(lgn)
双调查找原理非常简单,由于数列是先递增后递减的
所以必然存在一个最大值。而且这个最大值的位置非常特殊,因为不管在数组的哪个位置,都能够确定最大值的方向,既递增方向,所以在找最大值的过程中其实是有序的,只要通过二分查找的方法就能确定最大值的位置,这个过程是O(lgn),然后再分别在递增和递减数列中找所需要的给定整数,这个过程是O(lgn)