会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
风陵南
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
···
18
下一页
2024年9月27日
算法与数据结构——归并排序
摘要: 归并排序 归并排序(merge sort)是一种基于分治策略的排序算法,包含下图所示的“划分”和“合并”阶段。 划分阶段:通过递归不断地将数组从中点处分开,将长数组的排序问题转换为短数组的排序问题。 合并阶段:当子数组长度为1时终止划分,开始合并,持续地讲左右两个较短的有序数组合并为一个较长的有序数
阅读全文
posted @ 2024-09-27 13:35 风陵南
阅读(426)
评论(0)
推荐(0)
2024年9月26日
算法与数据结构——快速排序
摘要: 快速排序 快速排序(quick sort)是一种基于分治策略的排序算法,运行高效,应用广泛。 快速排序的核心操作是“哨兵划分”,其目标是::选择数组中的某个元素作为“基准数”,将所有小于基准数的元素移到其左侧,而大于基准数的元素移到其右侧。具体流程如下: 选取数组最左端元素作为基准数,初始化两个指针
阅读全文
posted @ 2024-09-26 16:33 风陵南
阅读(203)
评论(0)
推荐(0)
算法与数据结构——简单排序算法(选择、冒泡、插入)
摘要: 简单排序算法 时间复杂度均为O(n2) 选择排序 选择排序(selection sort)的工作原理非常简单:开启一个循环,每轮从未排序区间选择最小的元素,将其放到已排序的区间的末尾。 算法流程 设数组长度为n,选择排序的算法流程如下。 初识状态下,所有元素未排序,即未排序(索引)区间为[1, n-
阅读全文
posted @ 2024-09-26 10:35 风陵南
阅读(364)
评论(0)
推荐(0)
2024年9月20日
VS(visual studio) C++ 封装dll,以及其隐式调用与显式调用(静态\动态)
摘要: DLL介绍 DLL(动态链接库,Dynamic Link Library)是一种可执行文件,它包含可以在其他程序中调用的函数和数据。他是Windows操作系统中的一个重要概念,用于代码共享和模块化。 特点 代码共享:多个程序可以同时使用同一个DLL文件,而不需要将其代码编译到每个程序中。这样可以节省
阅读全文
posted @ 2024-09-20 10:54 风陵南
阅读(3739)
评论(2)
推荐(3)
2024年9月17日
算法与数据结构——哈希优化策略与算法选择
摘要: 哈希优化策略 在算法题中,我们通常通过线性查找替换为哈希查找来降低算法的时间复杂度。我们借助一个算法题来加深理解。 Question 给定一个整数数组nums和一个目标元素target,请在数组中搜索“和”为target的两个元素,并返回他们的数组索引。返回任意一个即可。 线性查找: 以时间换空间
阅读全文
posted @ 2024-09-17 20:26 风陵南
阅读(126)
评论(0)
推荐(0)
2024年9月12日
算法与数据结构——二分查找插入点,查找边界
摘要: 二分查找插入点 二分查找不仅可用于搜索目标元素,还可以解决许多变种问题,比如搜索目标元素的插入位置。 无重复元素情况 Question 给定一个长度为n的有序数组nums和一个元素target,数组不存在重复元素。现将target插入数组nums中,并保持其有序性。若数组中已存在元素target,则
阅读全文
posted @ 2024-09-12 13:56 风陵南
阅读(126)
评论(0)
推荐(0)
算法与数据结构——二分查找
摘要: 二分查找 二分查找(binary search)是一种基于分治策略的高效搜索算法。它利用数据的有序性,每轮缩小一半搜索范围,直至找到目标元素或搜索区间为空为止。 Qustion: 给定一个长度为n的数组nums,元素按从小到大的顺序排列且不重复。请查找并返回元素target在该数组中的索引。若数组不
阅读全文
posted @ 2024-09-12 09:57 风陵南
阅读(302)
评论(0)
推荐(0)
2024年9月11日
算法与数据结构——图的基础操作及图的遍历(广度优先与深度优先)
摘要: 图的实现 基于邻接矩阵的实现 给定一个顶点数量为n的无向图: 初始化:传入n个顶点,初始化长度为n的顶点列表vertices,使用O(n)时间;初始化 n * n 大小的邻接矩阵adjMat,使用O(n2)时间。 添加或删除边:直接在邻接矩阵中修改指定的边即可,使用O(1)时间。而由于是无向图,因此
阅读全文
posted @ 2024-09-11 14:51 风陵南
阅读(416)
评论(0)
推荐(0)
2024年9月9日
算法与数据结构——图简介
摘要: 图 图(graph)是一种非线性数据结构,由顶点(vertex)和边(edge)组成。我们可以将图G抽象地表示为一组顶点V和一组边E的集合。以下示例展示了一个包含5个顶点和7条边的图。 如果将顶点看做节点,将边看做连接各个节点的引用(指针),我们就可以将图看作一种从链表拓展而来的数据结构。如下图,相
阅读全文
posted @ 2024-09-09 15:02 风陵南
阅读(55)
评论(0)
推荐(0)
算法与数据结构——堆
摘要: 堆 堆(heap)是一种满足特定条件的完全二叉树,主要分为两种类型: 小顶堆(min heap):任意节点的值 ≤ 其子节点的值 大顶堆(max heap):任意节点的值 ≥ 其子节点的值 堆作为完全二叉树的一个特例,具有以下特性: 最底层节点靠左填充,其他层的节点都被填满 我们将二叉树的根节点称为
阅读全文
posted @ 2024-09-09 10:47 风陵南
阅读(329)
评论(0)
推荐(0)
2024年9月6日
C++ STL map/multimap容器
摘要: map/multimap容器 Map的特性是,所有元素都会根据元素的键值自动排序。Map所有的元素都是pair,同时拥有实值和键值,pair的第一个元素被视为键值,第二个元素被视为实值,map不允许两个元素有相同的键值。 multimap和map的操作类似,唯一区别是multimap的键值可以重复。
阅读全文
posted @ 2024-09-06 10:16 风陵南
阅读(21)
评论(0)
推荐(0)
C++ STL set/multiset容器
摘要: set/multiset容器 简介 Set的特性是,所有元素都会根据元素的值自动被排序。Set不允许两个元素有相同的值。 Set的迭代器iterator是一种const_iterator,不能通过迭代器改变任意set元素的值。 multiset的特性和用法和set相同,唯一的差别在于它允许值重复。
阅读全文
posted @ 2024-09-06 09:50 风陵南
阅读(63)
评论(0)
推荐(0)
2024年9月5日
C++ STL queue容器——队列
摘要: queue容器 基本概念 queue是一种**先进先出的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。 queue容器没有迭代器,所有元素进出都必须符合“先进先出”条件,只有顶端的元素才有机会被外界取用,所以也不提供遍历功能。 queue容器常用操作 构造函数 queu
阅读全文
posted @ 2024-09-05 17:12 风陵南
阅读(33)
评论(0)
推荐(0)
C++ STL stack容器——栈
摘要: stack容器 基本概念 stack是一种先进后出的数据结构,它只有一个出口,形式如下图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何地方可以存取stack的娶她元素。换句话说,stack不允许有遍历行为。 元素推入栈的操作称为push,将元素推出栈的操作称为p
阅读全文
posted @ 2024-09-05 16:56 风陵南
阅读(50)
评论(0)
推荐(0)
C++ 模板(函数模板与类模板)
摘要: 模板 模板介绍 C++提供了函数模板(function template)。所谓函数模板。实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡事函数体相同的函数都可以使用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时
阅读全文
posted @ 2024-09-05 14:01 风陵南
阅读(1011)
评论(0)
推荐(1)
上一页
1
2
3
4
5
6
7
8
···
18
下一页
公告