码迷,mamicode.com
首页 >  
搜索关键字:数据结构与算法分析    ( 232个结果
排序算法——快速排序
参考书籍:《数据结构与算法分析——C语言描述》 快速排序是在实践中最快的已知排序算法,它的平均时间复杂度O(NlogN)。当然在最坏的情况下为O(N^2),但稍加努力就可以避免这种情形。 像归并排序一样,快速排序也是一种分治的递归算法,可简单表示如下: 将数组S排序的基本算法由下列简单的四步组成。 1、数组元素至少大于或等于4个,否则直接利用插入排序完成。 2、利用特定方法(三数...
分类:编程语言   时间:2015-05-09 16:40:30    阅读次数:129
排序算法——插入排序
参考书籍《数据结构与算法分析——C语言描述》 插入排序,简而言之,就是对于第i个数,前i-1个数是已排序的,第i个数则要从第i-1个数开始往前遍历,比较大小,比它大的往后移一位,比它小的则其后为要的插入的位置,则在此处插入即可。插入后会发现前i个数都变成已排序的了(此处应注意体会)。于是依此类推插入第i+1个数。此方法最坏的时间复杂度也会达到O(n^2)的。 例如初始序列: 34 8 6...
分类:编程语言   时间:2015-04-27 17:01:38    阅读次数:176
JAVA实现二叉树
树是编程中一种常用的数据结构。以前在学习数据结构时,总想着如何实际地实现出一颗二叉树出来,现在参考了《数据结构与算法分析 JAVA语言描述 第二版》之后,照着书中的例子实现了一颗二叉树,个人感觉书上面的二叉树实现操作比较复杂。下面将我学到的一些知识记录下来:1,定义树的操作的基本接口,其中不包括插入...
分类:编程语言   时间:2015-04-25 22:33:25    阅读次数:250
数据结构学习——二叉堆ADT(程序化)
参考书籍《数据结构与算法分析——C语言描述》 关于堆的一些基本概念,可参见小zz的另一篇博文。 /*本例程实现的是最小堆,最大堆类似*/ #include #include #include #include #define MAX 13 typedef struct BHeap { int Capacity;//堆的最大容量 int Size;//当前堆大小 in...
分类:其他好文   时间:2015-04-15 23:27:29    阅读次数:235
数据结构学习——树的基本概念
参考书籍《数据结构与算法分析——C语言描述》  连接俩个节点的称为边 一棵树是N个节点和N-1条边的集合 没有儿子的节点称为树叶(叶)。 具有相同父亲的称为兄弟。 对任意节点ni,ni的深度为从根到ni的唯一路经长,其中根的深度为0。一棵树叶的深度等于它最深的树叶深度。 ni的高是从ni到一片树叶的最长路径的长,一棵树的高等于它根的高,所有树叶的高都是0. 某路径的长为该路径...
分类:其他好文   时间:2015-04-13 09:39:01    阅读次数:129
数据结构学习——散列表ADT(程序化)
不知道大家在刚开始看《数据结构与算法分析——C语言描述》散列一章的时候,能不能理解书上的内容,小ZZ看的时候就没怎么看明白。于是就去问度娘,度娘给了我这样一篇文章。里面介绍了散列的基本定义以及常用的实现方法,比较通俗易懂(可能是智商有点拙计)。 http://blog.csdn.net/u010275850/article/details/44963701 先看完了这篇博文,然后再看书上的...
分类:其他好文   时间:2015-04-12 13:28:33    阅读次数:172
2.7 洗牌算法
出自数据结构与算法分析--C语言描述 习题2.7在有个函数int rand(int n)返回1-n之间的随机数。如何把数组A[N]打乱?最初的Fisher–Yates算法是在另外开辟一个数组B[N],把打算后的A[N]放到B[N]中,步骤如下设i=01、生成1-A.length长度之间的随机数k2、...
分类:编程语言   时间:2015-04-09 19:37:43    阅读次数:148
算法交作业之最大子序列问题
最近看《数据结构与算法分析》一书,书中提供的一些算法太棒了,忍不住动手实现了下。有错误请指出,谢谢。 最大子序列问题求解:1.第一种解法:int MaxSubSequence(const int array[], int length){ if (length < 0) //数组长度不可以为0. return 0; int MaxSum = 0,ThisSum;...
分类:编程语言   时间:2015-04-09 13:45:40    阅读次数:144
数据结构学习——栈的链表实现(程序化)
关于栈的基本概念以及和Catalan数的关系,可以参见我的其他文章 参考资料《数据结构与算法分析——C语言描述》 #include #include /*栈的链表实现*/ typedef struct StackNode { struct StackNode *next; int data; }StackNode,*Stack; Stack CreateStack(...
分类:其他好文   时间:2015-04-08 23:29:30    阅读次数:354
数据结构学习——二叉查找树ADT(程序化)
参考资料:《数据结构与算法分析——C语言描述》4.3一节 #include #include #define N 10 typedef struct BinTreeNode { int data; struct BinTreeNode *left; struct BinTreeNode *right; }BinTreeNode,*BinTree; BinTree in...
分类:其他好文   时间:2015-04-07 21:39:31    阅读次数:133
232条   上一页 1 ... 14 15 16 17 18 ... 24 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!