摘要: 二叉排序树(Binary Sort Tree),又称二叉查找树。 1、若左子树不为空,则左子树上所有结点的值均小于他的根结构的值; 2、若右子树不为空,则右子树上所有结点的值均大于他的根结构的值; 3、他的左、右子树也分别为二叉排序树。 使用中序遍历时,二叉排序树的输出顺序是由小到大的有序数列。 二 阅读全文
posted @ 2017-07-27 17:42 hello_gogogo 阅读(4173) 评论(0) 推荐(0) 编辑
摘要: 代码参考: http://blog.csdn.net/iqrocket/article/details/8266365 http://blog.csdn.net/luno1/article/details/7951993 二叉树的性质: 1、在二叉树的第 i 层上,至多有 2 i-1 个节点。(i 阅读全文
posted @ 2017-07-25 16:25 hello_gogogo 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 基数排序:先按照最低位进行排序,然后对倒数第二位,以此类推。基于计数排序的基础上的一种排序方法。属于稳定排序,时间复杂度O(n),以空间换时间,需要额外的辅助空间。 计数排序:假设n个输入元素的每一个都是在0到k区间内的一个整数,其中k是一个整数。运行时间是O(n). 计数排序的基本思想是:对每一个 阅读全文
posted @ 2017-07-02 23:38 hello_gogogo 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 快速排序:使用的是分治思想 (归并排序也是); (1)选一个元素M作为基准数。 (2)把小于等于M的元素放在数组的左边,大于M的元素放在数组右边;这是M的位置已是正确的,不再改变。 (3)对M左边、右边的的数组分别使用(1)(2),知道数组中只有一个元素。 性能: 最坏时间复杂度是O(n2),平均时 阅读全文
posted @ 2017-06-30 12:37 hello_gogogo 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 堆排序(HeapSort)是利用堆积树(堆)这种数据结构设计的一种排序方法。 特性: 1、时间复杂度:N log N 2、由于建初始堆所需的比较次数较多,所以堆排序不适宜于记录数较少的文件 3、不稳定的排序方法(排序的稳定性是指如果在排序的序列中,存在前后相同的两个元素的话,排序前 和排序后他们的相 阅读全文
posted @ 2017-06-29 16:45 hello_gogogo 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归求解这些子问题,然后再合并这些子问题的解来建立原问题的解。主要包括三个主要步骤:1、分解原问题 ;2、解决子问题;3、合并子问题的解 归并排序遵循分治模式,算法的时间复杂度是O(NlogN),属于稳定排序。直观操作为: 分解:分解待 阅读全文
posted @ 2017-06-28 13:05 hello_gogogo 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 插入排序(Insertion Sort):玩扑克牌时,每抓一张牌,就就行一次排序。手中已有的牌是已经排序的,只要对新抓的牌key排序。在排序遍历的过程中,当遇到比key小的牌(按照从小到大排序),则结束本次排序。时间复杂度是O(n2),最优时间复杂度O(n),稳定排序。 伪代码:其中,n 是要排序数 阅读全文
posted @ 2017-06-27 21:19 hello_gogogo 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 带有头节点的循环链表。头节点的数据域为空,在查找某元素是否在链表中时,可用与存放该元素。头节点的next指针指向第一个元素。最后一个元素指向头节点。如图: 测试代码: #include<iostream> #include<string> #include"CircularList.cpp" #in 阅读全文
posted @ 2017-06-04 17:57 hello_gogogo 阅读(4622) 评论(0) 推荐(0) 编辑
摘要: 线性表的链式存储结构,用一组任意的存储单元存储数据元素。除了要存储数据元素信息外,还要存储他的后继元素的存储地址。 优点:(相对于线性表的顺序存储结构) 1、不需要连续的存储单元。 2、单链表不需要预分配存储空间,只要空间就可以分配,元素的个数也不受限制。 3、单链表在找出某位置的指针后,插入和删除 阅读全文
posted @ 2017-05-30 10:07 hello_gogogo 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 线性表的顺序存储结构,指用一段地址连续的存储单元依次存储线性表的数据元素。 优点: 1、可以快速存取表中的任一位置的元素。 2、不需要为表中元素之间的逻辑关系增加额外的存储空间。 缺点: 1、插入和删除操作需要移动大量的元素。 2、当线性表长度变化较大时,难以确定存储空间的容量。 3、造成存储空间的 阅读全文
posted @ 2017-05-26 17:29 hello_gogogo 阅读(350) 评论(0) 推荐(0) 编辑