![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构及算法
码上得道
这个作者很懒,什么都没留下…
展开
-
一些常见的算法题
一些常见的算法题质因数分解求1-n中和为m的子集保留最大的数 质因数分解 for (int i = 2; i <= n; i++) { while (n % i == 0) { cout << i <<" "; n = n / i; } if (n == 1) { break; }原创 2020-09-21 15:22:22 · 250 阅读 · 0 评论 -
各种排序算法解析以及C++实现
C++实现各种排序冒泡排序选择排序插入排序希尔排序快速排序归并排序堆排序计数排序桶排序基数排序 冒泡排序 基本思想:将最大的元素找出来放在数组最后的位置,每找出来一次最大的元素,未排序的元素数量就减一,直到所有的元素都被排序 实施步骤:1.通过两两交换啊,将最大的元素移动到数组尾端。 2.在剩下前n-1个元素里同样通过两两交换将最大的元素移动到尾端 3.重复步骤2,直到所有元素被排序 代码: class Solution { public: vector<int> sortArray(ve原创 2020-08-27 18:55:31 · 162 阅读 · 0 评论 -
二叉树三种遍历的递归和迭代实现
本文所有代码都在leetcode上提交成功,所以输入输出的格式与leetcode上题目一致,下面分析三种遍历使用到的二叉树如下图所示: 中序遍历 该二叉树的中序遍历为{4,2,5,1,6,3}。 递归实现 分析上面中序遍历后的序列,可以发现上面的中序遍历序列可以划分为{{4,2,5},1,{6,3}},可以看出中序遍历的结果可以按如下方法生成: 1.中序遍历左子树 2.输出根节点的值 3.中序遍历右子树 因此,中序遍历的递归代码如下: //leetcode的接口函数 vector<int&g原创 2020-06-28 20:52:52 · 245 阅读 · 0 评论