- 博客(11)
- 收藏
- 关注
原创 排序4
//计数排序//说明:不同与比较排序算法,计数排序算法不涉及到数据元素间的比较。计数排序适用于小范围集中的数据的排序,它以空间换取时间,能达到线性的时间复杂度。计数排序关键一点是:对于每一个元素x,确定有多少个元素不大于它---假设有n个元素小于或等于x(包括了x),则把x放在位序为n的地方即可。实际中,此算法很可能没快排和堆排好。//算法思想:{线性表}1。假设原始数据为ListA,数据的
2008-08-25 19:27:00 588
原创 排序3
//快速排序之确定划分点{逻辑结构:线性表}算法思想:1。假设对线性表List[p..r]确定划分点。定义位序变量i,j。i始终指向已处理的元素列表的末尾,即元素List[p..i]均不大于List[r]。j始终指向当前要处理的元素,即元素List[(i+1)..(j-1)]均大于List[r]。2。i = p - 1。j = p。3。当j4。如果List[j]5。j=j+1。转至步骤3。6。交
2008-08-25 19:22:00 432
原创 排序2
//最大堆的调整{逻辑结构:树状结构--完全二叉树}{存储结构:顺序表--数组即可反映逻辑结构}算法思想:1。前置条件:当前结点i的左子树和右子树都已经是最大堆;设堆的大小为n。2。结点i左结点的下标l=2*i;结点i右结点的下标r=2*i+1。3。在l4。如果l结点的值大于i结点的值,则把largest记为l,否则记为i。5。如果r结点的值大于i结点的值,则把largest记为r。6。如果lar
2008-08-25 19:18:00 338
原创 排序1
[] 表示一个块{} 表示注释kernel_code kernel_code只考虑最一般的、最基本的情况,不作输入等检查,它不应该给外界直接调用。//插入排序{逻辑结构:线性表}算法思想:1。从第二个元素开始,依次取出各个数据元素。2。取出的数据元素跟已经有序的序列作比较,从右往左,至到所有数据比较完毕,或找到一个比取出元素要小的元素为止,设这个元素的位序为i。3。把取出的数据元素插入
2008-08-25 19:16:00 468
原创 std::map的简单使用例子
std::map map_test; { double a1 = 0.12; double a2 = 0.12; double a3 = 0.19; std::map::iterator it; if ( (it = map_test.find(a1)) != map_test.end() ) { (*it).second ++; } else map_test.insert
2008-08-25 19:08:00 3235
原创 隐藏实现
为了让一个类或者函数能够访问某个类里面的私有成员,可以把这个类或函数作为某个类的友元。比如,这里面把全局函数main作为某个类的友元函数:#include using namespace std;struct Test{private: int m_a; friend int main();};int main(){ Test test; test.m_a = 90; //
2008-08-07 23:48:00 470
原创 NO1
不要心存顾虑,不要优柔寡断,不要拖泥带水,不要软弱无力。不想无聊之事,不想无关紧要之事,不想幻想之事,不想既定无法改变之事。以前习惯做的事,现在可能就不做了;以前不做的事,现在可能就会去做。
2008-08-06 22:43:00 421
原创 set的使用简例
//set的一个使用测试程序:#include #include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int arr[3] = { 1, 2, 3 }; set set_test( arr, arr + 3 ); //insert set_test.insert( 3 ); //3已
2008-08-06 20:44:00 522
原创 about set
// TEMPLATE STRUCT lesstemplate struct less : public binary_function { // functor for operator bool operator()(const _Ty& _Left, const _Ty& _Right) const { // apply operator return (_Left } };
2008-08-06 20:41:00 457
原创 定义一个计算操作时间的宏
#include "stdafx.h"#include #include using namespace std;void InfoLog( string info_log ) // 记录信息{ FILE * pTargetFile = NULL; pTargetFile = fopen( "LogInfo.txt", "a+" ); if ( pTargetFile != NU
2008-08-06 20:30:00 756
原创 递归
递归是很基本的算法,它体现了分而治之的思想。每次递归调用都意味着部分数值要压入栈中(系统维护了一个下压栈),这是跟迭代的区别,因为在迭代中每次循环结束时所有局部变量都获得了释放。所以使用递归算法必须考虑它的深度,考虑是否会造成栈溢出,与及对效率造成的影响。每一次递归调用,问题的规模都应该有所减少,并最终达到终止条件的要求,从而结束递归调用。树和链表都是递归定义。递归是自顶向下的算法。递归理论上的正
2008-08-06 20:12:00 478
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人