
算法
无限coding
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
荷兰国旗问题
问题描述:我们将乱序的红白蓝三色小球排列成有序的红白蓝三色的同颜色在一起的小球组。这个问题之所以叫荷兰国旗,是因为我们可以将红白蓝三色小球想象成条状物,有序排列后正好组成荷兰国旗。如下图所示: 这个问题,类似快排中partition过程。不过,要用三个指针,一前begin,一中current,一后end,俩俩交换。1、current遍历,整个数组序列,current指转载 2014-09-03 15:20:38 · 677 阅读 · 0 评论 -
八大排序算法的实现
八大排序算法的简单实现原创 2014-08-13 16:21:45 · 696 阅读 · 0 评论 -
kmp算法的实现
#include #include #include //计算next数组void get_next(char *pstr, int next[]){ int len = strlen(pstr); next[0] = -1; int pre = -1; int post = 0; while (post < len - 1) { if (pre == -1 || ps原创 2014-09-08 10:02:09 · 517 阅读 · 0 评论 -
程序员必须知道的8大排序和3大查找
本文要介绍的这些排序算法就是基础中的基础,程序员必知!1、直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例2、希尔排序(也称最小增量排序)(1)基本思想:算法先将要排序的转载 2014-08-13 16:38:43 · 873 阅读 · 0 评论 -
折半查找算法的实现
#include int find_mid(int array[], int n, int input){ int low = 0, high = n - 1; int mid; if (n < 1) return -1; while (low <= high) { mid = (low + high) / 2; if (array[mid] == input)原创 2014-08-27 20:20:51 · 792 阅读 · 0 评论 -
笔试题—黑板上1—50
在黑板上写下50个数字:1至50。在接下来的49轮操作中,每次做如下操作:选取两个黑板上的数字a和b,擦去,在黑板上写|b-a|。请问最后一次动作之后剩下的数字可能是什么?为什么?转载 2014-08-28 10:44:00 · 1414 阅读 · 0 评论 -
教你透彻了解红黑树
教你透彻了解红黑树 作者:July、saturnman 2010年12月29日本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。推荐阅读:Left-Leaning Red-Black Trees, Dagstuhl Workshop on Data Structures, Wadern, Germany, Fe转载 2014-09-17 21:36:27 · 505 阅读 · 0 评论