简单梳理一下以前学过的排序算法 冒泡排序 平均时间复杂度: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
程序员经常要面临的一个问题就是:如何提高程序性能? 这篇文章,我们循序渐进,从内存、磁盘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
内部排序是指在排序期间数据元素全部存放在内存的排序。外部排序是指在排序期间全部元素的个数过多,不能同时存放在内存,必须根据排序过程的要求,不断在内存和外存之间移动的排序。本次主要介绍常见的内部排序算法。 1. 直接插入排序 直接插入排序的算法思想是把待排序序列a[n]中的n个元素看作是一个有序表和无 ...
分类:
编程语言 时间:
2021-07-19 16:39:46
阅读次数:
0