看看有几重for循环,只有一重则时间复杂度为O(n),二重则为O(n^2),依此类推,如果有二分则为O(logn),如二分查找,如果一个for循环套一个二分,那么时间复杂度则为O(nlogn)。 常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n...
分类:
其他好文 时间:
2014-07-19 21:11:57
阅读次数:
148
想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~所以自己总结了一下,首先看sort函数见下表:函数名功能描述sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序partial_sort对给定区间所有元...
分类:
其他好文 时间:
2014-07-18 10:38:04
阅读次数:
342
归并排序的基本思想是:将待排序文件看成n个长度为1的有序子文件,把这些子文件两两归并,得到 n/2 个长度为2的有序子文件,然后再把 n/2 个有序子文件两两归并,如此这样反复进行下去,直到最后得到一个长度为n的有序序列为止。归并排序的核心操作是将数组中,前后相邻的两个有序序列,归并为一个有序序列。...
分类:
其他好文 时间:
2014-07-18 09:34:37
阅读次数:
158
第一章:磁盘排序:对于一个提出的问题,不要未经思考就直接给出答案。要先深入研究问题,搞清楚这个问题的特点,依据这个特点,可能有更好的解决方式。比方:文中:最初的需求仅仅是“我怎样对磁盘文件排序”。我们首先想到了经典的归并排序。但,进一步了解到排序的内容是10000000个记录,每条记录都是一个7位整...
分类:
其他好文 时间:
2014-07-18 08:18:16
阅读次数:
241
1、二分查找代码二分查找的代码. int bfind(int* a,int len,int val) { int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(...
分类:
其他好文 时间:
2014-07-18 00:01:25
阅读次数:
213
题目:uva10341-solve it
题目大意:求解给定的方程式解题思路:因为这个方程式在给定的x的范围内是单调递减的,所以可以用二分查找来尝试x的值。这里的 x是要求保留4小数,所以当区间缩小到一定的范围,这时候就是x的解。无解的情况只可能出现在x范围的两端。
代码:
#include
#include
#include
double p, q, r, s, t...
分类:
其他好文 时间:
2014-07-17 20:22:14
阅读次数:
277
直接插入排序:将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1...
分类:
其他好文 时间:
2014-07-16 17:32:03
阅读次数:
223
引言:
除去各种线性和非线性的数据结构外,还有一种在实际应用中大量使用的数据结构——查找表。查找表是由同一类型的数据元素构成的集合。
对查找表经常进行的操作有:1、查找某个"特定的"数据元素是否在查找表中;2、检索某个"特定的"数据元素的各种属性;3、在查找表中插入一个数据元素;4、从查找表中删去某个数据元素。对查找表只作前两种统称为"查找"的操作,则称此类...
分类:
其他好文 时间:
2014-07-16 17:24:54
阅读次数:
331
写在前面:
排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。因此排序掌握各种排序算法非常重要。对下面介绍的各个排序,我们假定所有排序的关键字都是整数、对传入函数的参数默认是已经检查好了的。只是简单的描述各个算法并给出了具体实现代码,并未做其他深究探讨。
基础知识:
...
分类:
其他好文 时间:
2014-07-16 09:47:22
阅读次数:
296
引言:
除去各种线性和非线性的数据结构外,还有一种在实际应用中大量使用的数据结构——查找表。查找表是由同一类型的数据元素构成的集合。
对查找表经常进行的操作有:1、查找某个"特定的"数据元素是否在查找表中;2、检索某个"特定的"数据元素的各种属性;3、在查找表中插入一个数据元素;4、从查找表中删去某个数据元素。对查找表只作前两种统称为"查找"的操...
分类:
其他好文 时间:
2014-07-16 09:46:21
阅读次数:
364