![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 92
syao_zj
keep it stupid simple
展开
-
C++ 实现二叉树的一些基本操作(详细注释版)【原创】
中序,前序(后序同理)遍历恢复二叉树思路: 1.前序遍历的第一个元素为根节点。 2.在中序遍历中,找到确定的根节点,可以把中序遍历分割成左右子树的中序遍历 3.在前序遍历中,区分中序遍历的左右子树部分,根据前序遍历的特点1,找到左右子树的根节点。 4.依次类推,直到左右子树为空为止。 代码如下: 因为代码中有详细注释,在此不在赘述。 头文件:tree.h #pragma once #ifndef _TREE_H_ #define _TREE_H_ #include<iostream> #incl原创 2020-06-02 23:22:50 · 769 阅读 · 0 评论 -
八大排序算法总览
八大排序算法: 插入排序: (1)直接插入排序:稳定排序,时间复杂度O(n^2); (2)希尔排序:直接插入排序的优化,非稳定排序,时间复杂度O(n^1/3); 选择排序: (1)简单选择排序:非稳定排序,时间复杂度O(n^2) (2)堆排序:非稳定排序,时间复杂度O(nlogn),用于topK问题 交换排序: (1)冒泡排序:稳定排序,时间复杂度O(n^2) (2)快速排序:非稳定排序,时间复杂度平均为O(nlogn),使用递归需要栈空间 归并排序:稳定排序,时间复杂度O(nlogn),分治的思想,使用递原创 2020-09-08 22:09:25 · 118 阅读 · 0 评论