摘要: 二分查找的两种写法,递归和普通循环~ 大部分情况下都用普通的循环,因为递归法费空间。/* 时间复杂度: 1.最坏情况 查找最后一个元素(或者第一个元素) Master定理 T(n)=T(n/2)+O(1) 这个O(1)是判断 所以 T(n)=O(logn) ... 阅读全文
posted @ 2015-02-16 18:11 雨尘之林 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 第一种方法, 主要是分组每组五个排序,取中位数,再取中位数的中位数然后进行分割,根据MoM和k的比较进行递归查找。但是貌似当数量一大的时候,容易出现问题。暂时留有一定的疑问。这个的复杂度也是O(n)。//选择排序void SelectSort(long* A,int len=5){ for (... 阅读全文
posted @ 2015-02-16 15:50 雨尘之林 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 先放上老版代码,这个并不好,由于用到了各种指针和动态数组申请和释放,容易出现问题,不如第二种方法直接用临时数组来解决这个问题老版://归并 left是左边数组 left_len长度int* Merge(int* left,int left_len, int* right,int right_len)... 阅读全文
posted @ 2015-02-16 15:29 雨尘之林 阅读(244) 评论(0) 推荐(0) 编辑