- 博客(5)
- 收藏
- 关注
原创 青蛙跳台阶-学习记录篇
青蛙跳台阶1. 正常跳:每次只能跳一步或两步2. 变态跳:每次跳可以跳(1,2,3...,n)步青蛙跳台阶是动态规划的一个经典题型,主要有两种变体。题目:共有n级台阶,青蛙在采取不同跳跃方式的情况下,共有多少种跳法,一般有下列两种跳法。记跳到第n阶的方案数为f(n)1. 正常跳:每次只能跳一步或两步青蛙要跳到第n阶,由于每次只能跳一步或两步,必然是如下2种情形,1. 到达第n-1阶再跳1步...
2019-09-24 10:31:25 172
原创 C++研发面试准备
C++面试内存管理1. new和malloc的区别内存管理1. new和malloc的区别本质:new是c++中的运算符,malloc是c中的库函数,new的底层实现基于malloc,其功能可以取代malloc申请内存所在位置:new取决于语句的运行地点(若在函数体中则为堆,若在外则为堆),malloc分配在堆返回指针的类型:new为对象指针,malloc为void是否需要指定内存大...
2019-09-23 11:56:33 253
原创 堆排序学习
堆排序-新手学习记录堆排序核心思想步骤重点记录代码参考博主dreamcatcher-cx这位博主还有许多优秀的排序方法学习记录堆排序核心思想构建n次最大堆,每次构建顶点元素即为数组最大元素,找到最大元素之后将最大元素放在数组最后步骤从最后一个非叶子节点开始,将该节点调整最低级节点,也即它的小于父节点大于两个子节点;调整次数为N/2-1完成最大堆的构建之后,将堆的顶点与最后一个元素交...
2019-09-17 17:10:02 68
原创 快速排序
快速排序原理步骤代码效率分析(待补充)原理步骤一趟排序先取出一个数,一般为第一个数,vec[0];把大于这个数的方法该数的左边,小于这个数的放到该数的右边数组分成了两个子数组(不包含选取的数),对两个子数组分别递归进行如上的快速排序代码#include<iostream>#include<vector>using namespace std;voi...
2019-09-17 15:06:07 183
原创 归并排序算法
归并排序的核心思想:分治法一个子步骤如下:把数组分成两半,然后对对每一半都排序(分),再把排序好的步骤合并(治),代码如下void sort(vector<int> & v, int left, int right){ int mid= (right + left) / 2; //递归的写法:一个子步骤 if (left < right) { ...
2019-09-17 14:43:44 137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人