随笔分类 - 数据结构
数据结构学习的一些心得
摘要:最近复习下数据结构,用C#实现了下二叉搜索树,后面再继续实现平衡树和红黑树,以下是二叉搜索树(又称二叉查找树)的定义和性质: 二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 ...
阅读全文
摘要:前面回顾了几个主要的排序算法,排完序就该搜索了,主要的查找类型分为静态查找表和动态查找表两大类,先看看静态查找表常用算法,二分搜索。二分搜索原理如下: 二分查找又称折半查找,它是一种效率较高的查找方法。 【二分查找要求】: * 1.必须采用顺序存储结构 * 2.必须按关键字大小有序排列。 * 【优缺点】折半查找法的优点是比较次数少,查找速度快,平均性能好; * 其缺点是要求待查表为有序表,...
阅读全文
摘要:上一篇中简单的回顾了三种比较简单的排序算法:冒泡排序,直接插入排序,简单选择排序,这三种算法的空间复杂度为O(1),时间复杂度为O(N2)。这次我们来看看相对复杂的排序算法,前面介绍的排序算法并没有保存比较结果,导致重复比较,下面介绍的三种排序算法都会将比较结果保存下来,所以时间复杂度会相对低,包括快速排序,堆排序,归并排序(二路归并)。快速排序原理:* 快速排序(Quicksort)是对冒泡排序...
阅读全文
摘要:好久不看数据结构,天天调用别人封好的结构,感觉基本功都快忘光了,现在将压在箱底的数据结构翻出来看看,加深下印象。 闲话少说,水平所限,仅仅回顾几个最常用的排序算法,包括冒泡排序,直接插入排序,简单选择排序,快速排序,堆排序,归并排序,我个人将算法分为两大块,时间复杂度为O(N2)为一大类,其余为另外一大类。 先从最简单的排序说起吧, 冒泡排序原理:冒泡排序(BubbleSort)的基本概念是...
阅读全文
浙公网安备 33010602011771号