?
2025年02月03日
作为新手小白,我喜欢在一个项目中写多个小程序来调试运行,因为每次新建一个项目都显得比较繁琐。但一个项目中包含多个main函数,项目是无法运行的。查了一些资料终于可以完美解决这个问题,以VS2017为例。
2025年02月03日
一、概念
以a、b、c三个字符来举例。
1)排列:全排列即字符不能重复,第一位有3种选择,第二位有2种选择,第三位有1种选择,所以最后有3*2*1=6种结果。
2)组合:组合不要求三个字符都必须加入结果。
求所有组合也就是abc各个位是否选取的问题,第一位2种可能,第二位2种可能,以此类推,一共有2^n种可能。用0表示不取,1表示选取,这样可以用110这样的形式表示ab。
2025年02月03日
堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。
对于堆的操作通常需要以下3个步骤:
2025年02月03日
众所周知想要成为C++开发工程师,需要掌握的知识有很多,这不仅包括数据类型、数据结构、数据变量的信息,还需要了解一定的算法信息。那么基本的C++算法有哪些?
基本的C++算法分为三类:排序算法、树算法、图算法。算法思想有三种:递推、分治、动态规划 以及 贪心算法。
2025年02月03日
排序是编写程序遇到的最常见的数据处理手段,冒泡排序又是一种最经典的排序算法。如下图所示,举一个最简单的例子,将数组1、3、4、5、2进行排序,第一步需要进行的是红色部分的比较,判断相邻的两个数字是否是正序数,即前面的数字小于后面的数字,如果是正序就再观察判断下一对数字,如果不是就用绿色的部分进行前后数字的交换,这样从左到右一遍后再重复多次则可自动完成排序。
用C++实现的代码如下: