码迷,mamicode.com
首页 >  
搜索关键字:数据结构与算法 3:二叉树    ( 1805个结果
《数据结构与算法分析:C语言描述》复习——第四章“树”——AVL树
2014.06.15 16:22简介: AVL树是一种高度平衡的二叉搜索树,其命名源自于联合发明算法的三位科学家的名字的首字母。此处“平衡”的定义是:任意节点的左右子树的高度相差不超过1。有了这个平衡的性质,使得AVL树的高度H总是接近log(N),因此各种增删改查的操作的复杂度能够保证在对数级别....
分类:编程语言   时间:2014-06-18 23:42:43    阅读次数:734
随笔记事之二
1.针对面向对象的设计与分析:为了让软件有更好的可维护性,重用性以及快速开发,简短的OOAD与它的SOLID原则对于每一个软件工程师来说都是该牢记的。2.软件品质因素:软件工程的好坏与软件的品质因素是绝对关联的。请在开发过程中深刻的理解这一点。3.数据结构与算法:深刻理解像数组,列表,栈,树,图,集...
分类:其他好文   时间:2014-06-18 21:29:37    阅读次数:208
插入排序,希尔排序,堆排序,归并排序,快速排序Java实现
参看:数据结构与算法分析-c语言描述public class Main { public static void main(String[] args) { String[] a = { "a", "d", "e", "f", "m" }; String[] b =...
分类:编程语言   时间:2014-06-18 16:08:33    阅读次数:211
《数据结构与算法分析:C语言描述》复习——第六章“排序”——冒泡排序
2014.06.17 01:04简介: 冒泡排序是O(n^2)级别的交换排序算法,原理简单,属于必知必会的基础算法之一。思路: 排序要进行N轮,每一轮从尾部逐个向前扫描,遇到逆序对就进行交换。确保每一轮把最小的元素交换到前面去。这个过程好比水中的气泡向上飘,所以叫冒泡排序。代码非常简单,所以语言.....
分类:编程语言   时间:2014-06-17 23:20:33    阅读次数:268
《数据结构与算法分析:C语言描述》复习——第六章“排序”——插入排序
2014.06.17 01:37简介: 插入排序是最常用的O(n^2)级别的交换排序算法。之所以最常用,是因为它和选择排序、冒泡排序相比,有着自己的优势。描述: 如果数组的前i - 1个元素已经排好序,你要将第i个元素插入到其中,使得前i个元素变得有序。为了找到应该插入的位置,我们从后向前扫描,.....
分类:编程语言   时间:2014-06-17 21:30:02    阅读次数:254
《数据结构与算法分析:C语言描述》复习——第六章“排序”——基数排序
2014.06.17 06:42简介: 基数排序是一种非比较算法,通过多轮的分配与合并来排序整个数组。应用范围比较窄,根据Wikipedia的说法,它只适合整数排序。描述: 基数排序和桶排序有点类似,都是将元素按照特定依据分配到多个桶中。但它和桶排序的区别,在于它要进行不止一次的分配与合并。每次.....
分类:编程语言   时间:2014-06-17 21:27:20    阅读次数:392
《数据结构与算法分析:C语言描述》复习——第六章“排序”——选择排序
2014.06.17 01:17简介: 选择排序是一种O(n^2)级别的交换排序算法,属于新手必学算法。描述: 个人觉得选择排序的代码是所有排序中最直观,最符合人类大脑思维的了。当我第一次有排序的需求时(初中时自学了一点C语言,算是人生第一次写代码),我自己试着写下的代码就是选择排序,当然我上了.....
分类:编程语言   时间:2014-06-17 14:26:16    阅读次数:203
[数据结构与算法分析(Mark Allen Weiss)]二叉树的插入与删除 @ Python
二叉树的插入与删除,来自Mark Allen Weiss的《数据结构与算法分析》。# Definition for a binary tree nodeclass TreeNode: def __init__(self, x): self.val = x self...
分类:编程语言   时间:2014-06-17 14:25:01    阅读次数:291
《数据结构与算法分析:C语言描述》复习——第四章“树”——伸展树
2014.06.15 20:42简介: 伸展树是一种介于普通二叉搜索树和AVL树之间的,比较平衡的一种二叉搜索树。它不像AVL树那样总是高度平衡,虽然单次操作的就可能耗费O(n)时间,但连续M次基本操作的时间复杂度能做到O(M * log(N)),M当然不能和1太接近。这种复杂度叫做均摊复杂度,英....
分类:编程语言   时间:2014-06-17 00:21:20    阅读次数:363
《数据结构与算法分析:C语言描述》复习——第五章“堆”——二叉堆
2014.06.15 22:14简介: 堆是一种非常实用的数据结构,其中以二叉堆最为常用。二叉堆可以看作一棵完全二叉树,每个节点的键值都大于(小于)其子节点,但左右孩子之间不需要有序。我们关心的通常只有堆顶的元素,而整个堆则被封装起来,保存在一个数组中。图示: 下图是一个最大堆: 实现: 优...
分类:编程语言   时间:2014-06-16 13:16:58    阅读次数:230
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!