知识点
修呀
这个作者很懒,什么都没留下…
展开
-
知识点1——STL容器汇总
一篇有关STL容器介绍很详细的干货,看完对STL的容器认识清晰了很多,转载自以下作者:作者:涨月薪链接:https://juejin.im/post/5c9de926f265da30b53eb970来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。C++ STL容器详解STL(标准模板库),是目前C++内置支持的library。它的底层利用了C++类模板和函...转载 2019-05-27 22:31:24 · 223 阅读 · 0 评论 -
知识点2——归并排序
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。主要思路:当排序一个数组的时候,归并排序首先将这个数组分成一半,然后把左边的数组给排序,右边的数组给排序,之后再将它们归并起来;当对左边...原创 2019-07-18 16:20:15 · 267 阅读 · 0 评论 -
知识点3——堆排序
堆排序(从小到大排序)利用大顶堆的堆顶记录的是最大元素这一特性,使得每次从无序中选择最大元素变得简单。其基本思想为(大顶堆):1)将初始待排序关键字序列(R1,R2…Rn)构建成大顶堆,此堆为初始的无序区;2)将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,…,Rn-1)和新的有序区(Rn),且满足R[1,2,…,n-1]<=R[n];;3)由于交换后...原创 2019-07-18 21:07:32 · 326 阅读 · 0 评论 -
知识点4——快速排序
快速排序是一种不稳定的排序,时间复杂度为O(nlogn),但在数组近似有序的情况下,时间复杂度会退化成O(n*n)。基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。算法思路:1.先从队尾开始向前扫描且当low < high时...原创 2019-07-20 20:53:18 · 288 阅读 · 0 评论 -
知识点5——字符串处理+映射
题目描述:给定两个字符集合,一个为全量字符集,一个为已占用字符集。已占用的字符集中的字符不能再使用,要求输出剩余可用字符集。输入描述:输入为一个字符串,字符串中包含了全量字符集合已占用字符集,两个字符集使用@连接。@前的字符集合为全量字符集,@后的字符集合为已占用字符集。输入:a:3,b:5,c:2@a:1,b:2输出:a:2,b:3,c:2核心代码如下:#include <...原创 2019-08-10 10:40:14 · 1168 阅读 · 0 评论 -
知识点6——冒泡排序
冒泡排序是一种稳定的排序,时间复杂度为O(n^2),其基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个...原创 2019-09-06 10:04:49 · 298 阅读 · 0 评论 -
知识点7——插入排序
插入排序是一种稳定的排序,时间复杂度为O(n^2),其基本思想是:将一组数据分成两组,分别称其为有序组与待插入组。每次从待插入组中取出一个元素,与有序组的元素进行比较,并找到合适的位置,将钙元素插入到有序组当中。核心代码如下:#include <iostream>using namespace std;void insertionsort(int* arr, int len...原创 2019-09-06 10:28:28 · 157 阅读 · 0 评论 -
知识点8——选择排序
选择排序是一种稳定的排序,时间复杂度为O(n^2),其基本概念是:每一次从待排序的数据元素中选出最小(或最大)的元素,存放在序列的起始位置,直到全部待排序的数据元素排完。核心代码如下:#include <iostream>using namespace std;void selectionsort(int* arr, int len) { //基础版 for (int i...原创 2019-09-06 10:39:34 · 178 阅读 · 0 评论