自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西代零零发

既然选择远方,便只顾风雨兼程

  • 博客(10)
  • 收藏
  • 关注

原创 关于算法学习的总结和感悟

时隔一年重读《算法导论》,去年读到了二叉查找树就搁浅了,今年从头捡起,希望能走的更远一些。算上大学时的数据结构与算法课,今年可以算是第三波学习攻势了。随着学习的深入,对算法的学习渐渐有了些自己的看法和感悟。一.为什么学习算法?记得初学算法时不明白为什么费力分析程序的执行步骤后,还要用公式表达出来并求极值。一遍遍的学习渐渐有了领悟:算法研究是用来做大事的!之所以...

2012-03-31 20:27:37 780

原创 关于算法学习的总结和感悟(原创)

时隔一年重读《算法导论》,去年读到了二叉查找树就搁浅了,今年从头捡起,希望能走的更远一些。算上大学时的数据结构与算法课,今年可以算是第三波学习攻势了。随着学习的深入,对算法的学习渐渐有了些自己的看法和感悟。一.为什么学习算法?记得初学算法时不明白为什么费力分析程序的执行步骤后,还要用公式表达出来并求极值。一遍遍的学习渐渐有了领悟:算法研究是用来做大事的!

2012-03-26 22:43:43 11302 2

原创 《算法导论》第12章 二叉查找树 (3)基数树

基数树与二叉查找树和Trie树很相似。它像BST一样是二叉的,向左表示0而不是BST的小于,而向右则表示1而不是大于。它像Trie一样共享相同的结点来保存字符串中相同的前缀,从而节省了空间,但它不像Trie那样每个结点有很多孩子(可以是26个,表示a到z),它用来处理只包含0和1的字符串。基数树和Trie都用来保存和排列字符串,那么现在来看看字典序,关于字典

2012-03-25 13:38:00 7483 5

原创 《算法导论》第12章 二叉查找树 (2)查找、插入与删除

1. 查找利用二叉查找树左小右大的性质,可以很容易实现查找任意值和最大/小值。BSTNode * bst_search(BSTNode *node, int key){ while (node && key != node->key) { if (key key) node = node->left;

2012-03-25 11:48:49 7966 2

原创 《算法导论》第12章 二叉查找树 (1)遍历

二叉查找树的效率在二叉查找树中执行的基本操作的时间与树的高度成正比。最坏情况,树的高度是N,像链表一样,而较好情况高度是lgN。因此,树的高度是关键。下一章将要学习的红黑树是对二叉查找树的改进,通过保持树的高度从而保证红黑树上的操作有很好的效率。各种遍历算法中序遍历算法:子树根的关键字在输出时介于左子树和右子树的关键字之间。即按排列顺序输

2012-03-24 22:49:46 3221

原创 《算法导论》第11章 散列表 (3)开放寻址

前一节介绍是最简单的冲突解决方法-链接法。开放寻址与链接法不同,所有元素都放在散列表内。在这种方法中,散列表可能会被填满。开放寻址不需要指针,只需要计算出要存取的各个槽。由于不用存储指针而节省的空间可以提供更多的槽。有三种技术常用来计算开放寻址法中的探查序列:线性探查、二次探查和双重探查。下面的实现中,三种方法的差别只在计算探查序列的那一行代码。#include

2012-03-12 21:34:38 2900

原创 《算法导论》第11章 散列表 (2)散列表

用散列表来解决直接寻址表的那两个问题。但由此带来的散列值的碰撞问题。最简单的解决方法是链接法,以及下一节介绍的开放寻址法。链接法,即把散列到同一槽中的所有元素都放在一个链表中。链表是无序的,在查找一个元素时需要遍历链表。对于删除函数,假如参数是要删除的结点,那么如果链表是双向的,删除操作可以O(1)内完成。在下面的删除函数中,参数是关键字,这样更为方便。#i

2012-03-10 23:05:10 2324 2

原创 《算法导论》第11章 散列表 (1)直接寻址表

(一)直接寻址表关键字集合U = { 0, 1, ..., m - 1 },实际的关键字集合K。用一个数组T[0..m - 1],其中每个位置对应U中的一个关键字。直接寻址表的问题:(1)如果U很大,要保存|U|大小的一张表T有点不实际。(2)实际存储的关键字集合K相对U来说可能很小,因而分配给T的大部分空间都要浪费掉。

2012-03-07 22:54:58 4695 7

原创 《算法导论》第10章 基本数据结构 (2)链表

《算法导论》里实现的是无序双向链表。源文件 list.h:链表的接口,定义链表和结点的类型,以及链表支持的操作。typedef int DATA_TYPE;// 注意将结构声明为新类型的语法struct tagNode { DATA_TYPE data; struct tagNode *prev, *next;};typedef struct

2012-03-05 22:21:20 2237

转载 Typedef与Struct

原文地址:http://blog.csdn.net/gungod/article/details/1400936当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它自己的指针吗?请你先猜想一下,然后看下文说明:typedef struct tagNode{ char *pItem; pNode pNext;

2012-03-04 16:27:47 1611

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除