自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我的算法学习笔记

目录时间复杂度算法与复杂度 通过数据范围和时间复杂度推断算法基础算法递归和分治法初等排序高等排序数据结构数据结构树二叉搜索树堆搜索搜索

2020-02-13 11:25:57 206

原创

优先队列优先队列能完成以下操作插入一个数值取出最小(最大)的值(获取数值,并弹出/删除)能够使用二叉树高效地解决上述问题的,是一种叫做堆的数据结构。堆堆总是满足下列性质堆中某个结点的值总是不大于(或不小于)其父节点的值堆总是一棵完全二叉树完全二叉树若设二叉树的深度为h,除了第h层以外,其他各层的结点数都达到最大个数,第h层所有的节点都连续集中在左边。...

2020-02-24 10:33:56 241 1

原创 二叉搜索树

搜索树链表允许我们添加、删除、搜索元素,种种数据结构会在执行时申请必要的内存空间,便于管理动态集合。但是,在链表中搜索元素的算法复杂度为O(n)。相比之下,使用动态树结构能更加有效地添加、删除和搜索数据。搜索树是一种可以进行插入、搜索、删除等操作的数据结构,可以用作字典或优先级队列。二叉搜索树属于最基本的搜索树。二叉搜索树顾名思义,二叉搜索树首先是二叉树,然后是搜索树。对于二叉...

2020-02-19 21:49:28 166

原创

树树是一种用于表达层级结构的数据结构。树结构是实现高效算法与数据结构的基础,是信息处理与程序设计中不可欠缺的概念。标准库中提供的很多算法和数据结构都与树结构有关。上图是一个简单的二叉树的示意图,对树来说,它是由结点(node),图中由圆圈表示,和连接结点的边(edge)构成,图中用线表示。对树来说,有几个关键概念。父结点,子结点——很好理解,通俗来说,在上面的是父结点,在下面的...

2020-02-17 19:07:01 166

原创 高等排序

序在之前的笔记(二)中记录了初等排序,分别是插入、冒泡和选择排序。而在这次的笔记中将记录高等排序。对于初等排序,时间复杂度为O(n2)。而对于高等排序,可以达到O(nlogn),甚至在特定条件下还可以达到线性时间复杂度 O(n)。高级排序归并排序快速排序计数排序归并排序所谓归并,是指将两个有序的数组合并为一个有序的大数组。不断重复对某个数组的子数组归并的过程,就可以...

2020-02-17 01:52:55 272

原创 递归和分治法

分治法将问题分解,通过求解局部性的小问题来解开原本的问题。这种技巧称为分治法。递归实现分治法需要使用递归。在使用递归时我们需要设计递归函数,递归函数...

2020-02-15 11:29:37 694

原创 搜索

搜索所谓搜索,就是在数据集合中寻找给定关键字的位置或判断其有无。基本的搜索算法有如下三种,分别为线性搜索、二分搜索、散列法。线性搜索线性搜索就是从数组开头依次访问各元素,检查该元素是否与目标值相等。一旦相等则返回该元素的位置并结束搜索。线性搜索的效率很低,但适用于任何形式的数据。二分搜索二分搜索是对已经排好序的数据进行查找...

2020-02-14 14:37:57 258

原创 基础数据结构

基础数据结构栈队列链表栈栈(stack)是一种遵循后入先出(Last In First Out ——LIFO)规则的数据结构。栈就像是一个水杯,最后倒进去的水最先倒出来。C++中的stack模板类定义在头文件< stack >中。stack的基本操作有#include <stack>using namespace std;stack<...

2020-02-13 23:06:06 209

原创 初等排序

初等排序插入排序冒泡排序选择排序希尔排序稳定排序所谓稳定排序,就是指在存在两个及以上相同的元素时,在排序处理前后,相对的前后位置不发生改变。插入排序插入排序,正如它的字面意思,核心思想就是把一个数插入到这个数组中它应该在的位置。从第二个数开始,将前面的看做已经排好序的数组,我们只需让它不断地向前比较,(以升序排列为例)只要找到第一个比它小的数,并将它插入在这个数的后面,然...

2020-02-13 16:12:38 242

原创 算法与复杂度

算法的效率算法的效率主要以时间复杂度和空间复杂度两方面来评估。相对于空间复杂度来说,时间复杂度明显是需要更多考虑的问题。O表示法在考虑时间复杂度的时候,可以大致考虑算法的运算时间与输入数据大小(n)的关系。如O(g(n))表示该算法的时间复杂度与g(n)成正比(或称该算法是g(n)级的)。几种典型的复杂度的比较O(n2)>O(nlogn)>O(n)>O(n\sqrt{n}n​)>O(logn)以下转自AcWing关于时间的估算对于时间限制为1s的大多数

2020-02-13 12:16:23 318 1

空空如也

空空如也

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

TA关注的人

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