基础知识
文章平均质量分 74
haiki66
Nothing replaces hard work!
展开
-
C++ 头文件包含的重复定义+extern的使用
C++项目中,一般在.h文件中声明,在.cpp 文件中定义和实现。每个文件尽量只专注于做一个事情,比如定义一个类,进行封装,对外提供特定功能。一个大型项目中,只有一个main函数,来接收数据,处理业务逻辑,处理的过程需要借助其他文件中提供的方法,即include。而每个其他文件,也可能include其其他文件实现自己的方法,可以把include想象成,把别人的代码粘贴过来放在自己的代码中。include 的过程中,最恼人的就是包含的关系,比如A 包含B了,B包含C了,那其实,A 也包含C了,当A中有直接原创 2021-09-04 20:29:09 · 1148 阅读 · 0 评论 -
牛客OJ笔试 C++ 输入输出
背景最近以及春招做笔试的时候发现,很多公司都用牛客网作为在线编程的OJ,这里需要自己做输入输出。因为牛客判题使用的方式是:不管输入,只将你程序的输出,和正确答案进行对比,有点像文本比对,有一点不一样,就会是不通过。比如 输出结尾不能/必须有空格,空行,逗号等特殊要求。今天根据牛客官网给出的练习做一下C++的输入输出总结。大家也可以去练下下~ 传送门:https://ac.nowcoder.com/acm/contest/56478-9-10是实战中经常用到的方式,比如输入数组,有多组,以逗号/空格分隔原创 2020-08-02 18:22:01 · 8885 阅读 · 0 评论 -
C++ 关键字之 mutable
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无...转载 2020-04-18 16:14:34 · 446 阅读 · 0 评论 -
C++ 关键字之 const
转载来源文章目录简介用const 修饰函数的参数用const 修饰函数的返回值const 成员函数(const的作用:说明其不会修改数据成员)简介const 可定义常量。但 const 更大的魅力是它可以修饰 函数的参数、返回值,甚至函数的定义体。const 是 constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所...转载 2020-04-18 15:06:02 · 193 阅读 · 0 评论 -
选择问题:选出无序数组中的第k小的数(以排序顺序)
文章目录问题描述基本思路优化方法代码实现问题描述输入:A =[A0,A1,…,A_{n-1}],k < n输出:第 k 小的数(特例:中位数)基本思路将数组排序,然后访问第 k 个就是第 k 小复杂度主要是排序,最好也需要 O(nlogn)我们只需要找第 k 小,并不需要完全排序的一个结构,是否可以用一点排序的操作,就能找出来呢?优化方法Divide and C...原创 2020-03-27 12:14:12 · 401 阅读 · 0 评论 -
计算逆序数对&&重要逆序数对(significant inversion)
文章目录逆序数对简介计算逆序数对思路significant inversion 简介significant inversion 思路significant inversion 代码逆序数对简介数组中的两个元素A[i], A[j],如果下标 i < j,但 A[i] > A[j] ,称 A[i] 与 A[j] 为逆序数对计算逆序数对思路Divide and Conquer......原创 2020-03-26 23:09:21 · 1042 阅读 · 1 评论 -
快速排序的来龙去脉 C++
文章目录快速排序简介快速排序步骤快速排序代码快速排序简介与归并排序是一个框架下的,快速排序也是Divid and Conquer 类的算法,只不过Divide 的时候不是以下标来划分(归并的做法),而是基于数组中的元素值与归并排序的不同在于此算法由 Sir Charles Antony Richard Hoare 于1962 年发明快速排序步骤快速排序代码...原创 2020-03-26 10:57:05 · 161 阅读 · 0 评论 -
归并排序 C++
目录归并排序思路归并排序实现归并排序思路Divide and ConquerA[0…n] = A[0…mid] + A[mid…n-1]mid 的划分方法可以用随机或者直接 1/2求原问题的排序,就是求子问题的排序,然后将子问题的解 merge性能不受输入数据的影响,始终为O(nlogn)归并排序实现#include<iostream>#include<...原创 2020-03-25 14:15:15 · 150 阅读 · 0 评论 -
插入排序 C++
目录插入排序的思路插入排序的C++实现插入排序优化思路插入排序的思路对 A[0…n-1] 排序,只需要将 A[0…n-2] 排好序,然后把 A[n-1] 插入到已排序数组的合适位置即可本质是基于Divid and Conquer 思路Divid 策略:基于元素下标A[0…n-1] = A[0…n-2] + 一个单独的元素A[0…n-2] 与 A[0…n–1] 有相同的结构,但是规...原创 2020-03-25 11:13:21 · 318 阅读 · 0 评论 -
基数排序
参考Radix Sort-GeeksforGeek基数排序另一种计数排序的方法思路将数组依次从低位(个位)到高位的顺序划分按照每一位的0-9十个数字对原数组进行计数排序/其他排序,负数则特殊处理时间:O(n*k),k是最大数字的位数,空间:O(n+k)#include<iostream>#include<stdlib.h>#include...原创 2019-12-02 21:33:46 · 139 阅读 · 0 评论 -
桶排序 C++
参考算法:排序算法之桶排序——链表实现Bucket Sort-GeeksforGeeks——vector实现桶排序确定桶的大小,个数对于大小,一般设置为元素个数,因为可能因为映射函数设计的不好,使得所有元素映射到同一个桶中二维数组的第二维可以用vector,也可以用链表,则不需要提前限定大小个数 bucket_n:(最大值-最小值)/元素个数,对于分布均匀的元素,则映射...原创 2019-11-29 17:13:02 · 1405 阅读 · 1 评论 -
计数排序 C++
知识点C++产生随机数算法系列-计数排序计数排序步骤数组开辟空间:计算大小,初始化遍历排序数组,对计数数组赋值遍历计数数组,对原数组排序时间:O(n),空间:O(m),m是最大值与最小值的差,可能是n#include<iostream>#include<stdlib.h>//随机数使用#include<time.h>#inclu...原创 2019-11-29 14:35:30 · 487 阅读 · 0 评论 -
负载均衡算法
本文讲述实现负载均衡的常用算法。转自https://blog.csdn.net/lihao21/article/details/54...转载 2019-07-25 11:31:42 · 154 阅读 · 0 评论