摘要:
本文摘自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html最小生成树-Prim算法和Kruskal算法Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索... 阅读全文
随笔档案-2014年12月
二叉排序树和平衡二叉树
2014-12-24 11:18 by itwolf, 1445 阅读, 收藏, 编辑
摘要:
二叉排序树又称二叉查找树或二叉搜索树。 它一棵空树或者是具有下列性质: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;查找的时候总是从根节点进行比较然后逐级往下进行。由于它是一种树形... 阅读全文
堆排序
2014-12-23 09:39 by itwolf, 220 阅读, 收藏, 编辑
摘要:
堆排序是对简单选择排序算法的一种改进,在每次选择最小记录的同时,根据比较结果对其他记录做出相应的调整。堆是具有下列性质的完全二叉树:每个节点的值都大于(小于)或者等于其左右孩子节点的值,为大顶堆(小于)。堆排序的基本思想是:从最后一个含有叶子节点的节点开始将待排序列构造成一个堆,然后将堆顶元素与末尾... 阅读全文
快速排序
2014-12-22 10:28 by itwolf, 303 阅读, 收藏, 编辑
摘要:
如果说希尔排序是简单插入排序的升级,堆排序是简单选择排序的升级,那么快速排序就是冒泡排序的升级了。相对于冒泡排序,快速排序增大了记录比较和移动的距离,将关键字较大的记录移动到后面,较小的移动到前面,从而减少总的比较和移动次数。快速排序的基本思想:通过每一趟排序都将待排序的记录按照选定的关键字分成两部... 阅读全文
递归程序设计
2014-12-21 10:28 by itwolf, 305 阅读, 收藏, 编辑
摘要:
一般定义: 程序调用自身的编程技巧称为递归(recursion)。递归做为一种算法设计技巧,是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。递归过程总是一个过程还未执行完就执行另一个过程(但是执行另一过程前会保存未执行完时候的变量值),如此反复,一直执行到边界条件,执行完余下的... 阅读全文
希尔排序
2014-12-17 13:47 by itwolf, 269 阅读, 收藏, 编辑
摘要:
1、希尔排序介绍希尔排序是对直接插入排序算法的一种改进,当记录较少或者记录本身基本有序的时候直接插入排序的优势非常明显,所以希尔排序就是通过人为的创造这两个条件,然后进行插入排序,基本思想是设置一个增量increment,然后将原始记录“看成”increment组数据,并对每组数据进行直接插入排序,... 阅读全文
结构体struct和typedef后面接指针的含义
2014-12-11 22:02 by itwolf, 2313 阅读, 收藏, 编辑
摘要:
typedef struct file{...}FileInfo, *FileP;上述程序中定义了一个结构体,结构体的名字为file,并且给其指针 取个别名为FileP,所以后续程序中出现FileP就相当于是struct file * 阅读全文
C++中关于指针初始化和使用NULL的理解
2014-12-04 12:38 by itwolf, 10766 阅读, 收藏, 编辑
摘要:
1、严禁使用未被初始化的指针:C++创建指针的时候,只分配存储地址的内存,并不会分配存储数据的内存,所以指针可能指向任何位置。 (1)使用解除运算符(*)之前,一定要对指针初始化,否则若声明的指针刚好指向程序代码的位置会导致一些很隐蔽的错误。 (2)未被初始化之前禁止指针之间的赋值。例如:#incl... 阅读全文
(虚)继承类的内存占用大小
2014-12-01 09:06 by itwolf, 741 阅读, 收藏, 编辑
摘要:
(虚)继承类的内存占用大小首先,平时所声明的类只是一种类型定义,它本身是没有大小可言的。 因此,如果用sizeof运算符对一个类型名操作,那得到的是具有该类型实体的大小。计算一个类对象的大小时的规律: 1、空类、单一继承的空类、多重继承的空类所占空间大小为:1(字节,下同); 2、一个类中,虚函数本... 阅读全文