自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 算法学习(五)

一、线段树 线段树是一种特殊的数据结构,常用于解决区间最值问题 RMQ(Range Minimum/Maximum Query)。假设有这样一个问题:给定一 个长度为 n 的数列,我们需要进行如下操作: (1).求出区间最值 (2).元素的替换与修改 (3).给定区间求和问题 这个问题容易想到的常规方法是从头到尾遍历,复杂度为 O(n), 若进行 m 次修改或者求和,总的复杂度为 O(mn),当 mn 较大时,这个 算法并不太简单。因此,我们引入一种新的数据结构——线段树

2021-05-29 21:52:01 140

原创 快速排序

快速排序#include<iostream>#include<vector>#include<algorithm>using namespace std;void quicksort(vector<int> &nums, int low, int high) { //参数是引用,如何不加&的话就是平常参数,也就是传值参数

2021-05-21 21:34:23 149

原创 八数码问题

八数码问题解法#include <iostream>#include <queue>const int LEN = 362880; //九宫格的排列状态有9! = 362880种using namespace std;struct node { int state[9]; //记录一个八数码的排列 int dis; //记录到起点的距离};int dir[4][2] = { {-1,0},{0,-1},{1,0},{0,1} }; //记

2021-05-21 21:31:46 124

原创 算法学习(四)

算法学习(四)迭代加深搜索(Iterative Deepening DFS,IDDFS)迭代加深搜索结合了BFS和DFS的思想。当我们遇到一个搜索问题是,它的搜索树非常特别,深度极深,宽度极广,使用DFS递归过长,使用BFS会使得队列爆炸。因此我们可以使用IDDFS解决这个问题。它的思想是:先假定一个搜索深度为1,然后用DFS搜索到第一层停止,在这个过程中,每一层的广度上采用BFS搜索。如果没有找到,则向深度为2的第二层搜索,依次递归。逐步扩大搜索的深度,直到找到答案。下面用埃及分数的例子加以说明

2021-05-20 23:19:27 648

原创 算法学习(三)

算法学习(三)在经历的期中考试和一个快乐五一之后,还是要开始干活了。这次学习主要是与简单搜索技术相关的总结。(一).递归与全排列下面是有关全排列的两个问题。1.打印从n个数中任意m个数的全排列(这里以1~9的全排列为例)这个题目,书上给出了两种方法:第一种方法是用暴力法遍历,因为全排列中不存在重复序列,直接用暴力法循环遍历9次即可,当然,这个方法过于笨拙,但简单有效。第二种方法则是使用递归,第一层递归是有关9个序列的,每次改变第一个数,这样每个序列就是不同的,再然后在第一层递

2021-05-10 21:36:34 272

原创 算法学习(二)

最近开始看一些简单的算法书,之前大一上学期学Python的时候,其实就有想写一些笔记的想法,但是之前一直太懒,没有实现。最近老师要求我们每个星期看一些算法书,并做一些笔记,希望这个习惯能够坚持下来吧。编程小白,错误之处请大佬们指正,也希望和萌新们一起加油学习。算法学习(二) 一.链表(list) STL 中的 list 是双向链表,它的特点是内存空间不连续,可以通 过指针来进行数据的访问,可以很快地在任意处插入和删除(这个操 作只需要常数时间。)list 适用于插入和删除频繁,而随机访问..

2021-04-23 21:16:55 161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除