插入排序(Insertion Sort),选择排序(Selection
Sort),冒泡排序和快速排序是我们经常会用到的排序算法。下面是这几种算法的基本思想和相对应的PHP实现代码。插入排序(Insertion
Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文...
分类:
Web程序 时间:
2014-05-05 12:48:01
阅读次数:
478
最简单的方式是使用 mysql 的 ORDER BY RAND() 子句。SELECT
col1 FROM tbl ORDER BY RAND() LIMIT
10;它能很好的运行在小表中。然而,对于大表,生成随机列表行时将产生一个严重的性能问题,MYSQL 需要对每一行进行随机,然后对它们排序。即...
分类:
数据库 时间:
2014-05-05 11:04:53
阅读次数:
483
1 #include 2 #include 3 4 void MerageSort(int *A,
int low, int high); 5 void Merge(int *A, int low, int middle, int high); 6 7 int
main() 8 { ...
分类:
其他好文 时间:
2014-05-04 20:44:56
阅读次数:
417
jquery datatable
参数DataTables(http://www.datatables.net/)应该是我到目前为止见过的,功能最强大的表格解决方案(当然,不计算其它整套框架中的table控件在内)。先把它主页上写的特性翻译罗列如下:可变长度分页;动态过滤;多列排序,带数据类型检测功...
分类:
Web程序 时间:
2014-05-04 19:26:52
阅读次数:
586
std::priority_queue
场景:
1. 对于一个任务队列,任务的优先级由任务的priority属性指明,这时候就需要优先级越高的先执行。而queue并没有排序功能,这时priority_queue是比较好的选择.
2 对于异步的task也是一样,在不断添加新的task时,当然希望优先级越高的先执行.
解析:
1. 如果需要把优先级最高的先pop,那么comp比较时需要返回false....
分类:
编程语言 时间:
2014-05-04 09:33:44
阅读次数:
382
计数排序
条件:要排序的数组的元素必须是在一定范围的,比如是1~100。在排序之前我们必须知道数组元素的范围。
思路:顾名思义:就是用一个数组来计数的。
步骤:
1、用一个数组来计数count[ ],将要排序的数组arr[ ]的元素记为数组count[ ]数组的下标,如果数组arr[]中有两个数相同就在count[]++.如count[arr[i]]++.
2、 再一次遍历数组count...
分类:
其他好文 时间:
2014-05-04 09:16:45
阅读次数:
219
大致题意:每个样例包含两行,第一行输入n个字符,可能是无序的。第二行输入成对的a b,代表a要在b前面。输出所有的符合这样的序列。
思路:很明显的拓扑排序。要输出所有的序列,那么就从入度为0的点进行dfs,每次选择一个入度为0的点,加入输出序列并把与它相邻的点的入度减一。dfs结束后要把状态再改回来。
#include
#include
#include
#include
#i...
项目中要实现table排序的功能。
网上有很多解决方案,很多都基于jQuery。
jquery.tablesorter,大小17KB,不过他的首页在ie10下兼容性有点问题。DataTables,大小75KB,功能强大,带分页,搜索等功能。还有插件叫sortElements,很小巧,只有3KB,兼容性也不错,而且在Github上有818个星。
最后我选择用sortElements...
分类:
Web程序 时间:
2014-05-04 09:02:22
阅读次数:
322
快速排序
快速排序也使用了分而治之的策略来提高性能,而且不需要额外的内存,但是这么做的代价就是,列表不是对半切分的,因而,性能上就有所下降。
快速排序选择一个数值,一般称为“轴点”,虽然有很多选取轴点的方法,我们还是简单地把列表中第一个元素做为轴点了。轴点的作用是帮助把列表分为两个部分。列表完成后,轴点所在的位置叫做“切分点”,从这一点上把列表分成两部分供后续调用。
图12所示,54将作...
分类:
编程语言 时间:
2014-05-04 08:59:00
阅读次数:
388
题意:要连出一个从1-L的过山车线,给出n段可选的建设方案。每段都有起始位置,终止位置,代价,和乐趣程度。要实现1-L的长度中,相邻两端要首尾相连,总建设代价控制在B之内,问最多能获得多少乐趣程度。
解法:二维dp, num[i][j]记录恰好建设到i并且用掉代价j多能获得的最多乐趣。先将每段可选方案按照位置排序,然后进行转移。最后选max(num[L][i]),i from 0 to ...
分类:
其他好文 时间:
2014-05-04 08:57:59
阅读次数:
267