- 博客(11)
- 收藏
- 关注
原创 C++算法计算效率的提高
最近在做CF上的比赛题的时候,遇到一道暴力求解的题目,如下:B. Perfect Numbertime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputWe cons
2018-02-01 15:44:34
1411
原创 详解数组实现隐式二叉堆及堆排序
一,堆的性质 1.顶部总是保存着最小或者最大的元素 2.有弹出操作,插入操作,合并操作,并且无论进行什么操作,都保持堆的性质1不变。 二,堆的实现 我用的是数组来实现隐式二叉堆,数组实现的二叉堆主要的是二叉堆的节点到数组下标的映射。比如堆中的第 i 个节点,对应数组下标也为i,然后通过下标的映射来找父节点,左儿子,右儿子。父节点的下标为i/2,左儿子为2i,右儿子为
2017-12-24 11:53:39
356
原创 单源最短路径问题(Bellman-Ford算法)
所谓最短路问题是图论中最基础的问题,是给定两个点,在以这2个点为起点和终点的路径中找到最短的那条。
2017-12-19 14:10:01
861
原创 深度优先搜索示例
题目1:部分和问题问题描述:给定整数a1,a2,....an,判断是否可以从中选出若干数,使之和恰好为k;代码:void DFS(int i,int num){//已经从前i项得到和sum,然后对i之后的进行分支 if(i==n) return sum==k;//若前n项都已经计算过,则返回sum是否与k相等即可 if(DFS(i+1,sum)) return true
2017-11-20 00:17:23
387
原创 快速排序算法C语言实现
背景:在了解快速排序算法之前,先了解一下它的背景。快速排序算法是冒泡排序的改进,它大大优化了算法的时间复杂度,当然,它并不是总具备优势。基本思想:快速排序算法的基本思想可以总结为分治和递归。冒泡排序算法要求每一个元素都必须与其他元素进行比较,两两相比,最终得到正确的排序结果,而快速排序算法则是先选好枢纽元,然后以其为基准将整个序列分为2部分,一部分中的元素比枢纽元小,另一部分的元素比枢纽元大,
2017-10-01 21:34:56
1709
原创 C语言变长数组的学习心得
初次接触变长数组时我很不明白引入变长数组的意义,因为变长数组虽然是使用变量来指定数组的维度,但是这样操作与声明一个常量再应用似乎没什么区别。例如:1.使用普通数组 2.使用变长数组 #include#include#define ROWS 3int main(
2017-09-27 22:32:36
1225
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人