数据结构与算法
philosophia_OsO
这个作者很懒,什么都没留下…
展开
-
数据结构算法与解析(STL版含源码)
第1章 线性表线性表:抽象的数据类型。逻辑结构:除第一个元素外,每个元素都有一个前驱;除最后一个元素外,每个元素都有一个后驱。物理结构:顺序、单链、双向链。STL:vector(顺序表)、list(链表)。1.1 顺序存储结构特点:易实现随机查找;但插入或删除时操作复杂。适用于稳定的线性表,例如职工工资表、学生学籍表。涉及:拷贝构造函数、运算符重载、函数指针、自定义类型的使用。1....原创 2020-02-22 16:27:48 · 1150 阅读 · 0 评论 -
B+tree原理
参考链接B+tree详解及实现(C语言)B-tree详解及实现(C语言)原创 2020-06-09 21:08:21 · 167 阅读 · 0 评论 -
红黑树原理
红黑树简介红黑树是一种自平衡二叉查找树,是计算机科学领域中的一种数据结构,典型的用途是实现关联数组,存储有序的数据。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的。它可以在O(logn)时间内做查找,插入和删除,红黑树和平衡二叉树(AVL树)都是二叉查找树的变体,但红黑树的统计性能要好于AVL树。因为,AVL树是严格维持平衡的,红黑树是黑平衡的。维持平衡需要额外的操作,这就加大了数据结构的时间复杂度,所以红黑树可以看作是二叉搜索树和AVL树的一个折中,维持平衡的同时也不需要花原创 2020-06-09 14:42:43 · 177 阅读 · 0 评论 -
课程作业(二叉查找树)
/********************mainTest.cpp**********************/#include<iostream>#include"binarySearchTree.h"using namespace std;int main(){ cout << "请按前序输入一棵树,使用-1代表空树" &am原创 2020-05-28 21:42:44 · 161 阅读 · 0 评论 -
课程作业(单链表C++实现)
//单链表的操作C++实现 #include <iostream> using namespace std;//使用命名空间template<typename dataType> //定义一个数据类型模板class linkedList{//定义单链表类 struct Node{ dataType data; Node *next; Node(cons...原创 2020-05-28 21:42:30 · 237 阅读 · 0 评论 -
第四次作业_dijkstra algorithm
/********************mainTest.cpp**********************/#include<iostream>#include"ALG.h"using namespace std;int main(){ALGraph graph;graph.createGraph();graph.printGraph();cout <<...原创 2020-05-28 21:42:15 · 135 阅读 · 0 评论 -
排序算法之堆排序(附源码)
1、将顺序存储的数据看成是一颗完全二叉树2、对于大顶堆,确保每棵子树的根节点都是整个子树中的最大值;这就保证了根节点是所有数据中的最大值,但不保证所有数据有序。/**************** achieve heap sorting**********************/#include<iostream>//#include<ctime>...原创 2020-05-04 17:14:28 · 164 阅读 · 0 评论 -
排序算法之归并排序
充分利用了把大问题转化成一个个小的子问题的思想。(由迭代或递归来实现)/**************** achieve merge sorting**********************/#include<iostream>//#include<ctime>//#include<algorithm>using namespace st...原创 2020-05-04 12:55:47 · 70 阅读 · 0 评论 -
排序算法之快排
1、快排快速排序算法的关键在于先在数组中选一个数字,接下来把数组中的数字分成两部分。/**************** achieve quick sorting**********************/#include<iostream>#include<ctime>//#include<algorithm>using namespac...原创 2020-05-04 00:40:42 · 125 阅读 · 0 评论 -
时间复杂度与空间复杂度
时间复杂度与空间复杂度1 Running time:时间复杂度—T(n)=O(f(n))时间复杂度:算法执行时间随规模增大而增长的趋势。以算法中重复执行的次数作为算法时间复杂度的依据。计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂...原创 2019-02-20 17:09:48 · 127 阅读 · 0 评论