随笔分类 - 数据结构
摘要:3.冒泡排序 1.冒泡排序基本思想 数组从底部向上扫描,如果相邻的两个元素逆序,则交换两者,一次循环后,最小的元素就到了 数组的顶部,堆剩下的元素执行同样的操作,直到所有元素就绪。 2.代码 3.时空复杂度分析 时间复杂度:外层循环了n-1次,内层循环从n-1到1递减,从复杂度上,次数与n相关,时间
阅读全文
摘要:2.选择排序 1.选择排序基本思想 选择排序就是先找到位置不合适的元素,再把它放到最终的位置上,基本思想是: 先找到数组的最小元素,和第一个位置的元素交换,然后在剩余的元素中找到最小的元 素,和第二个位置的元素交换......,直到所有元素都在合适的位置上。 2.代码 3.时空复杂度分析 时间复杂度
阅读全文
摘要:#ifndef HEAP_H #define HEAP_H #include #include using namespace std; template class Heap { public: Heap(vector &_vec) : vec(_vec){} ~Heap(){ vec.~vector(); } Heap(const He...
阅读全文
摘要:#ifndef NODE_H #define NODE_H template class node{ public: T data; node *next; public: node(T _data=0) : data(_data),next(nullptr){} }; #endif // NODE_H #ifndef QUEUE_H #define...
阅读全文
摘要:#ifndef NODE_H #define NODE_H template class node{ public: T data; node *next; public: node(T _data=0) : data(_data),next(nullptr){} }; #endif // NODE_H #ifndef STACK_H #define...
阅读全文
摘要:#ifndef NODE_H #define NODE_H template class node{ public: T data; node *next; public: node(T _data=0) : data(_data),next(nullptr){} }; #endif // NODE_H #ifndef LINK_H #define ...
阅读全文
摘要:二叉查找树 1.概念 二叉排序树可以是一颗空树,或者是具有以下性质的树: 1.左子树如果不为空,左子树上所有节点的值均小于等于根节点的值 2.右子树如果不为空。右子树上所有节点的值均大于等于根节点的值 3.左右子树均为二叉排序树 2.实现 我们讨论二叉树的查找,插入,删除,遍历,线索化。 1.查找
阅读全文
摘要:1.插入排序 1.排序思想 插入排序的主要思想就是把每一个元素插入合适的位置,以升序来分析,首先分析前两个元素,如果data[0]大于data[1],交换他们的次序,这时,前两个元素已经是已经排好序的。考虑data[2]: 如果data[2]小于data[0]和data[1],将data[1]和da
阅读全文
浙公网安备 33010602011771号