随笔分类 -  C++

C++堆排序算法的实现
摘要:堆排序(Heap sort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以用到上一次的排序结果,所以不像其他一般的排序方法一样,每次都要进行n-1次的比较,复杂度为O(nlogn)。 这 阅读全文

posted @ 2019-07-15 22:09 zkfopen 阅读(10685) 评论(0) 推荐(1) 编辑

冒泡排序(及改进版)
摘要:冒泡排序 (1)基本思想 冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。 算法的核心在于每次通过两两比较交换位置,选出剩余无序序列里最大(小)的 阅读全文

posted @ 2019-07-15 18:05 zkfopen 阅读(1538) 评论(0) 推荐(0) 编辑

使用函数rand5()来实现函数rand7()
摘要:题目: 题目: 给定一个函数rand5(),该函数可以随机生成1-5的整数,且生成概率一样。现要求使用该函数构造函数rand7(),使函数rand7()可以随机等概率的生成1-7的整数。 思路: 很多人的第一反应是利用rand5() + rand()%3来实现rand7()函数,这个方法确实可以产生 阅读全文

posted @ 2019-07-15 11:26 zkfopen 阅读(6274) 评论(0) 推荐(0) 编辑

C++二叉树前中后序遍历(递归&非递归)统一代码格式
摘要:统一下二叉树的代码格式,递归和非递归都统一格式,方便记忆管理。 三种递归格式: 前序遍历: 中序遍历: 后序遍历: 三种递归遍历不用多解释。 三种非递归格式: 前序遍历: 中序遍历: 后序遍历: 以上三种遍历实现代码行数一模一样,如同递归遍历一样,只有三行核心代码的先后顺序有区别。 解释下三种非递归 阅读全文

posted @ 2019-07-13 17:02 zkfopen 阅读(2418) 评论(0) 推荐(0) 编辑

反转链表和反转链表2
摘要:LeetCode 206. Reverse Linked List Reverse a singly linked list. Example: Follow up: A linked list can be reversed either iteratively or recursively. C 阅读全文

posted @ 2019-07-12 16:08 zkfopen 阅读(369) 评论(0) 推荐(0) 编辑

C++归并排序(数组&链表)
摘要:1、归并排序(Merge Sort) 归并排序的性能不受输入数据的影响,始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。 阅读全文

posted @ 2019-07-11 21:30 zkfopen 阅读(1783) 评论(0) 推荐(0) 编辑

关于C++跨平台
摘要:问题:C++是怎么跨平台的呢? 答: 因为支持C++语言的各个平台的架构不同(比如CPU能够处理的指令集不一样),所以一份C++源代码要想在另一个操作系统平台上执行,就必须用该平台相对应的C++代码编译器对C++源代码重新进行编译,生成该平台可以直接执行的机器代码。 它的执行过程是:预处理->编译- 阅读全文

posted @ 2019-07-07 10:19 zkfopen 阅读(5029) 评论(0) 推荐(0) 编辑

腾讯2017校招开发工程师笔试试卷(一)答题解析
摘要:1.参数传递是通过栈实现的,从右向左依次压栈。 2.具有3个节点的二叉树有几种形态?答案为:5。n个结点的二叉树的形态:(2*n,n)/n+1 3.已知一棵二叉树的前序遍历为CABEFDHG,中序遍历为BAFECHDG,那么它的后续遍历是:(BFEAHGDC) 4.哪种数据结构用于执行递归调用?答: 阅读全文

posted @ 2019-07-01 15:37 zkfopen 阅读(660) 评论(0) 推荐(0) 编辑

C++面试高频题
摘要:作者:守望者1028链接:https://www.nowcoder.com/discuss/55353来源:牛客网面试高频题: 校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我也忘记了,如果您看到有些熟悉,那么可能就是您的,如果您觉得侵权,请告诉我,我撤回。 1语言基础(C++) (1 阅读全文

posted @ 2019-07-01 15:33 zkfopen 阅读(1628) 评论(0) 推荐(0) 编辑

寒武纪C++日常实习生面经(其他人面试题)
摘要:1.C++继承方式? 答:public,protected,private三种继承方式和虚继承一共四种。 派生类可以继承定义在基类中的成员,但是派生类的成员函数不一定有权访问从基类继承而来的成员。 派生类将除了基类的构造函数和析构函数以外的所有成员都继承下来了。 虚继承: 虚拟继承是多重继承中特有的 阅读全文

posted @ 2019-06-28 16:30 zkfopen 阅读(1958) 评论(0) 推荐(1) 编辑

C++之旋转矩阵和打印一个有规律的矩阵
摘要:旋转数组 描述: 某个图像通过一个整数组成的m*n矩阵表示,其中每个整数表示一个像素值。写出一种方法,根据flag变量的值将图像向右或者向左旋转90°。如果flag值为0,则向左旋转,如果flag为1,则向右旋转。 函数rotatePictureMethod的输入分别由矩阵matrix、矩阵的维度m 阅读全文

posted @ 2019-06-26 22:19 zkfopen 阅读(2537) 评论(0) 推荐(0) 编辑

C++实例 分解质因数
摘要:分解质因数: 每个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。 分解质因数的算式叫短除法。求一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。 如24 2┖24(是短除法的符号) 2┖12 2┖6 3——3是质数,结束 阅读全文

posted @ 2019-06-25 19:33 zkfopen 阅读(15874) 评论(0) 推荐(1) 编辑

(经典)堆和栈的区别
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS 回收。注 阅读全文

posted @ 2019-06-22 16:26 zkfopen 阅读(238) 评论(0) 推荐(0) 编辑

C++中虚函数的作用和虚函数的工作原理
摘要:1 C++中虚函数的作用和多态 虚函数: 实现类的多态性 关键字:虚函数;虚函数的作用;多态性;多态公有继承;动态联编 C++中的虚函数的作用主要是实现了多态的机制。基类定义虚函数,子类可以重写该函数;在派生类中对基类定义的虚函数进行重写时,需要在派生类中声明该方法为虚方法。 当子类重新定义了父类的 阅读全文

posted @ 2019-06-20 21:17 zkfopen 阅读(46559) 评论(1) 推荐(4) 编辑

排序算法之快速排序QuickSort
摘要:挖坑填数-快速排序 1. left = L,right = R;将基准数挖出形成第一个坑s[left]; 2. right --; 由后向前找比它小的数,找到后挖出此数填前一个坑s[left]中。 3. left ++; 由前向后找比它大的数,找到后挖出此数填前一个坑s[right]中。 4. 重复 阅读全文

posted @ 2019-04-04 14:09 zkfopen 阅读(449) 评论(0) 推荐(0) 编辑

字符串的全排列和组合算法
摘要:转:字符串的全排列和组合算法 阅读全文

posted @ 2019-04-01 21:16 zkfopen 阅读(498) 评论(0) 推荐(0) 编辑

基于范围的for循环(C++11)
摘要:C++11新增了一种循环:基于范围的for循环。这简化了一种常见的循环任务:对数组(或容器类,如vector和array)的每个元素执行相同的操作,如下例所示 for语句允许简单的范围迭代:(只遍历,不修改) 其中,x最初表示数组arrayData的第一个元素。显示第一个元素,不断执行循环,而x依次 阅读全文

posted @ 2019-03-31 15:28 zkfopen 阅读(2507) 评论(0) 推荐(1) 编辑

哈希表
摘要:1.哈希表的定义 哈希表:根据关键码值(key value)直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找速度,这个映射函数叫做哈希函数,存放记录的数组叫做哈希表。 给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字 阅读全文

posted @ 2019-03-27 21:01 zkfopen 阅读(933) 评论(0) 推荐(0) 编辑

C++自己实现一个String类
摘要:C++自己实现一个String类(构造函数、拷贝构造函数、析构函数和字符串赋值函数) 阅读全文

posted @ 2019-03-27 11:55 zkfopen 阅读(5285) 评论(0) 推荐(1) 编辑

return *this和return this有什么区别?
摘要:return *this返回的是当前对象的克隆或者本身(若返回类型为A, 则是克隆, 若返回类型为A&, 则是本身 )。 return this返回当前对象的地址(指向当前对象的指针)。 转:https://blog.csdn.net/stpeace/article/details/22220777 阅读全文

posted @ 2019-03-27 11:37 zkfopen 阅读(368) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示