简单梳理一下以前学过的排序算法 冒泡排序 平均时间复杂度:O(n²);稳定 比较相邻元素,如果前面的比后面大,就交换两个元素 每一对相邻元素做同样的比较,从开始第一对元素一直比到结尾,一轮结束最后的元素是最大的。 除了每轮比较出来的最大元素,对其他元素重复以上操作。 public void bubb ...
分类:
编程语言 时间:
2021-07-29 16:19:56
阅读次数:
0
含义 就是一个$O(n)$的复杂度求解最长回文子串的算法 思路 思路的话我随便说下 首先回文串可能是奇数也可能是偶数,那么对称中心就有可能是两个字符的空隙,所以先给每个字符插如一个隔板符号 '|' 第0个字符插入'~' 防止出现超出边界的问题 如abcbs -> ~|a|b|c|b|s| 设$p[i ...
分类:
编程语言 时间:
2021-07-28 21:25:10
阅读次数:
0
什么叫冒泡排序?冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素, 如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的 ...
分类:
编程语言 时间:
2021-07-28 21:24:41
阅读次数:
0
思路:暴力模拟。 看到题解大多是从大到小分析位置输出答案,这里特别提供一种简洁易懂的暴力模拟涂色方法。 根据题目上的涂色方式,我们可以想到一种模拟:对于原图每一个白块,我们可以在新图上把它替换成单位正方形;对于原图每一个黑块,我们可以在新图上把它替换成 \(n \times n\) 的全黑正方形。 ...
分类:
其他好文 时间:
2021-07-28 21:15:27
阅读次数:
0
程序员经常要面临的一个问题就是:如何提高程序性能? 这篇文章,我们循序渐进,从内存、磁盘I/O、网络I/O、CPU、缓存、架构、算法等多层次递进,串联起高性能开发十大必须掌握的核心技术。 - I/O优化:零拷贝技术- I/O优化:多路复用技术- 线程池技术- 无锁编程技术- 进程间通信技术- RPC ...
分类:
其他好文 时间:
2021-07-27 17:35:42
阅读次数:
0
概述 前面算法系列文章有写过分治算法基本原理和实践,对于分治算法主要是理解递归的过程。二分法是分治算法的一种,相比分治算法会简单很多,因为少了递归的存在。 在计算机科学中,二分查找算法(英语:binary search algorithm),也称折半搜索算法(英语:half-interval sea ...
分类:
其他好文 时间:
2021-07-26 16:54:02
阅读次数:
0
这个题本来不打算写,既然某kerin告诉我他WA了,,,emmmm? dl 还能WA,新鲜事嘞 顺便昂,谢邀 WA了也不能不回消息吧(不过不是这个题) 鞭尸现场(雾 这个题一看就是不涉及任何复杂算法的简单题(当然简单题也不一定对) 算法应该叫"贪心"吧,不过是个枚举就是了。 如果说一个注意点就是,要 ...
分类:
其他好文 时间:
2021-07-26 16:42:09
阅读次数:
0
量子密码为什么比经典密码算法更加安全在未来? 因为经典的密码算法的安全性都是依靠于数学难题,例如:大素数难分解问题、LWE问题、近似最大公约数问题等等,但量子加密算法不是依靠这个数学难题,而是量子力学的基本原理,未来不再受量子计算的威胁了。 一个n量子比特的存储器同时存储这2^n个数据状态,使得量子 ...
分类:
其他好文 时间:
2021-07-26 16:41:14
阅读次数:
0
一、简介 1 局部领域搜索 又称爬山启发式算法,从当前的节点开始,和周围的邻居节点的值进行比较。如果当前节点是最大的,那么返回当前节点,作为最大值(即山峰最高点);反之就用最高的邻居节点替换当前节点,从而实现向山峰的高处攀爬的目的。它是禁忌搜索的基础,TS算法是在其上改进而来。 1.1 优点: 容易 ...
分类:
编程语言 时间:
2021-07-23 17:44:31
阅读次数:
0
描述 给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径, 例如: 给出如下的二叉树,sum=22 Java import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode l ...
分类:
编程语言 时间:
2021-07-19 16:52:19
阅读次数:
0