- 博客(8)
- 资源 (5)
- 收藏
- 关注
原创 二分查找,分块查找,哈希查找
二分查找法:如下例程序:#includeusing namespace std;//快速排序进行排序void quickSort(int* qs,int low,int high){ int flag = 0; //比较标志位 int i=low,j=high; //游标 flag = qs[low]; if(high > low) { while(j>i) { while((j>i)&&(flagi)&&(fla
2010-08-26 20:33:00 2497
原创 树的基本定义,二叉树,二叉排序树,森林,最优二叉树(哈夫曼树,哈夫曼编码)
遍历二叉树的三种方式:先序遍历,中序遍历,后序遍历线索二叉树二叉树的深度计算排序二叉树:树和森林:在这里,保存树和森林的办法是用二叉树作为保存方式,还是通过链式结构进行保存,每个节点的左边保存的为该节点的第一个孩子节点,而后节点则为该节点所在深度的下一个兄弟节点。如下图:最优二叉树(哈夫曼树)哈夫曼编码:它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的)。如下例:
2010-08-24 20:41:00 3080
原创 快速排序
<br />快速排序是一种划分交换排序,它采用的是分治法的策略。<br /> <br />分治法的基本思想:将原问题分解为若干个规模更小但结构与原问题相似的子问题,递归的解这些子问题,然后将这些子问题的解组合为原问题的解。<br /> <br />下面是一个快速排序法的程序,在这个代码中,首先将代排序数组的第一个单元作为flag(比较标志位)。随后从数组的末尾进行比较,如果发现有数据单元a的值小于flag,那么就将他存入第一个数组单元。此时j指向a。随后开始从数组前进行搜寻比较,直到发现有一个值比flag要
2010-08-22 14:40:00 1054 1
原创 直接插入排序,希尔排序
每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。 直接插入排序属于稳定的排序,时间复杂性为o(n^2),空间复杂度为O(1)。 直接插入排序是由两层嵌套循环组成的。外层循环标识并决定待比较的数值。内层循环为待比较数值确定其最终位置。直接插入排序是将待比较的数值与它的前一
2010-08-21 20:05:00 2310
原创 冒泡排序
冒泡排序属于交换排序的一种,交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。由于冒泡排序记录移动次数较多,故平均时间性能比直接插入排序要差得多。实现代码:#includeusing name
2010-08-21 19:01:00 997
原创 Linux内核网络系统结构图(TCP/IP)和源代码的布局
file: init.h #define __init_call __attribute__ ((unused,__section__ (".initcall.init"))) #define __exit_call __attribute__ ((unused,__section__ (".exitcall.exit"))) extern initcall_t __initcall_start, __initcall_end; #define __initcall(fn) /
2010-08-07 11:54:00 2277
原创 C++学习笔记(二)
<br />友元<br /> <br />友元包括友元函数和友元类。<br />友元可以访问其有好友关系的类中的私有成员。<br /> <br />将一个普通函数在类体中通过friend关键字经行声明,就是将该函数声明为该类的友元函数。<br /> <br />在通过友元函数访问私有数据成员时,必须加上对象名。所以,友元函数一般都会有一个该类的引用变量,这个变量用于接收传来的对象。<br /> <br />友元函数不仅可以是一般函数(非成员函数),而且可以是另一个类中的成员函数。在这里,就用到了提前引用声明
2010-08-06 14:42:00 882
原创 C++学习笔记(一)
用const声明的变量被称为常变量,常变量在程序运行期间是不能改变的const int a = 3; //其指定值始终为3在定义常变量时必须同事对它初始化(既指定其值)。此后它的值不能再改变string在C++中也有定义。在使用方法上和其他int,char类型一样。可用来定义变量,字符串常量以“/0”作为结束符。但将字符串常量存放到字符串变量中时,只存放字符串本身而不存放“/0”。并且在字符串中:1。字符串赋值用赋值号2。字符串连接用加号3。字符串比较直接用关系运算符为动态的分配和撤销内存,C++中使用了n
2010-08-05 16:21:00 1021
FCKeditor 成功实例
2009-03-13
c实例解析精粹(代码)
2008-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人