
一些变量值交换的方法
第三个变量 实现 void swap(int &a, int &b) { int temp = a; // 将 a 的值存储在临时变量 temp 中 a = b; // 将 b 的值赋给 a b = ...
第三个变量 实现 void swap(int &a, int &b) { int temp = a; // 将 a 的值存储在临时变量 temp 中 a = b; // 将 b 的值赋给 a b = ...
简述 快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移到数列一边,比它小的元素移到数列的另一边,从而把数列拆解成两个部分。 快速排序是从冒泡排序演变而来的。 快速排序也属于交换排序,通过元素之间的比较和交换位...
简述 桶排序需要创建若干个桶来协助排序。 所谓桶,每个桶bucket代表一个区间范围,里面可以承载一个或多个元素。 复杂度 名称 最好 平均 最差 空间 稳定性 桶排序 n+k n nlog(n) n 是 实现 vo...
简述 冒泡排序通过反复遍历要排序的列表,比较每对相邻项,并以升序或降序的方式交换它们。重复操作列表,知道不需要交换为止。 复杂度 名称 最好 平均 最差 空间 稳定性 冒泡排序 n n2 n2 1 是 理解 冒泡排序...
概述 动态规划(Dynamic Programming,简称 DP)是一种通过分解问题来解决复杂问题的算法技术,特别适用于具有最优子结构性质的问题,即问题的最优解可以由其子问题的最优解构建而成 动态规划的核心思想是将...
概述 贪心算法(Greedy Algorithm)是一种构造性算法,用于解决最优化问题 其核心思想是在每一步选择中,都采取当前状态下最优的选择,期望通过一系列局部最优的选择达到全局最优 贪心算法在许多实际问题中非常有...
概述 狄克斯特拉算法(Dijkstra's Algorithm)是一种用于计算单源最短路径的算法,适用于非负权重的有向图和无向图 对于狄克斯特拉算法而言,图必须有权重才行 如果图是无权图(即所有边的权重都相...
BFS 概述 广度优先搜索(Breadth-First Search,简称 BFS)是一种遍历或搜索图或树数据结构的算法 它从根节点开始,沿着树的宽度遍历节点(即先访问同一层级的所有节点,再访问下一层级的节点) 在图...
基于算法思想 比较排序 冒泡排序(Bubble Sort): 反复交换相邻的逆序元素 快速排序(Quick Sort): 通过分区交换来排序,递归地对分区进行排序 堆排序(Heap Sort): 利用堆结构进行排序,...
预处理操作 参数 iterP_begin:模式序列P的起始迭代器 iterP_end:模式序列P的终止迭代器 解析 初始化 pai[1] = 0,k = 0 遍历(q从:2->m) 从2开始,因为Pk必须是Pm...