![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 75
SolidusSnake
这个作者很懒,什么都没留下…
展开
-
算法记录:堆排序
这次给出堆排序,这东西也比较干净,就是把数组当成一颗二叉树来处理,现在假设数组索引是从1开始的(注意,违反C的惯例),那么其子节点就是1*2和1*2 + 1,某个节点的父节点就是node_idx/2; 索引1所在的节点未根节点. /*注意,我这个函数是向下修正函数,为了make heap方便,我用的是当索引起始为1来编写的,不要有任何疑虑,下面你 就可以看到为什么是可行的. 这个函数的功能是向下修原创 2008-02-20 01:41:00 · 548 阅读 · 0 评论 -
算法记录:MSD基数排序 + qsort 对字符串排序
typedef std::vector t_vstr;void exch(std::string &str1, std::string &str2){ std::swap(str1, str2);}void str_qsort_internal(t_vstr &arr, int l, int r, size_t d){ if(l >= r)return; int i = l - 1, j原创 2008-02-20 01:42:00 · 1531 阅读 · 0 评论 -
重读Alpha-Beta算法
Alpha值代表的是发起走棋一方(期望极大值)做能接受的最小值,搜索极大值一方必须要找到一个比Alpha值更大的,否则这步棋就没有任何意义 Beta值代表的是对手(期望极小值)所能接受的最坏值,搜索极小值的一方必须找到一个比Beta值更小的一步棋,否则也是没意义的(因为有更好的一步棋已经生成了) 先看函数调用方式 int AlphaBeta(int depth, int alpha, in原创 2008-02-20 01:39:00 · 3094 阅读 · 1 评论 -
算法记录:二进制快速排序
这个东西有点类似于quick sort,更类似与人数数,比如你怎么确定123,和130哪个更大?一定是先看百位再看10位对吧?简单的基数排序就类似这样,我现在来写个按位提取的,把一个unsiged int当作一个二进制树,从第31bit开始比较,因为如果第31bit为0,那么证明这些都比为1的要小,所以放到前面,以此类推bool digit(const unsigned int &num, siz原创 2008-02-20 01:40:00 · 1426 阅读 · 0 评论