算法与数据结构
文章平均质量分 87
Cloud_Castle
视野多大,舞台就有多大
展开
-
八大排序算法
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短转载 2015-06-04 18:45:14 · 1381 阅读 · 0 评论 -
二分查找(Binary Search)需要注意的问题,以及在数据库内核中的实现
问题背景 今年的实习生招聘考试,我出了一道二分查找(Binary Search)的题目。题目大意如下: 给定一个升序排列的自然数数组,数组中包含重复数字,例如:[1,2,2,3,4,4,4,5,6,7,7]。问题:给定任意自然数,对数组进行二分查找,返回数组正确的位置,给出函数实现。注:连续相同的数字,返回第一个匹配位置还是最后一个匹配位置,由函数传入参数决定。 我为什么会出这道题目? 二分查找在转载 2015-05-24 15:09:32 · 1650 阅读 · 0 评论 -
QVector的内存分配策略
我们都知道 std::vector 作为动态数组在所分配的内存被填满时,如果继续添加数据,std::vector 会另外申请一个大小当前容量两倍的区域(如果 n > size 则申请 n+当前容量 的空间),然后把当前内容拷贝到新的内存,以达到动态扩容的效果: size_type _M_check_len(size_type __n, const char* __s) const原创 2015-08-12 21:25:54 · 13586 阅读 · 4 评论 -
可能是最难围住的神经猫——寻找必胜路径的算法实现
标题借鉴了一下老罗的风格,哈哈(*^__^*) 原来围住神经猫游戏刚火的时候,恰巧当时正在学QML,顺手就给弄了一个,不知道大家还记不记得这个游戏,界面是酱紫的:然后在 Qt 贴吧里面也共享了一下:http://tieba.baidu.com/p/3241650033因为当时做这个的时候主要是想练下 QML,所以草草弄了个随机方向选择算法(应该没资格叫算法吧...),然后这只小猫就蠢得不要不要的...原创 2015-08-31 01:20:55 · 13767 阅读 · 21 评论