lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2023年7月3日

摘要: 希尔排序是一种基于插入排序的高效的排序算法, 它的基本思想 将待排序的序列分成若干个子序列,对每个子序列进行直接插入排序,然后逐渐减小子序列的间隔,直到间隔为1时,对整个序列进行最后一次直接插入排序。 1. 希尔排序的原理 希尔排序是由D.L.Shell于1959年提出的一种改进的插入排序算法,它的 阅读全文
posted @ 2023-07-03 21:29 白露~ 阅读(27) 评论(0) 推荐(0) 编辑

摘要: 多路归并排序的原理和Java实现 什么是多路归并排序? 多路归并排序是一种基于归并操作的有效的排序算法,它使用分治法的思想,将多个有序的子序列合并成一个完全有序的序列。它是一种稳定的排序方法,适用于处理大规模的数据集。 多路归并排序的过程是怎样的? 多路归并排序的过程可以分为两个步骤:分割和合并。 阅读全文
posted @ 2023-07-03 21:28 白露~ 阅读(1015) 评论(0) 推荐(0) 编辑

摘要: 堆排序 1. 什么是堆排序? 堆排序是一种基于堆这种数据结构的排序算法。堆是一种特殊的完全二叉树,它满足以下性质: 大顶堆:每个非叶子节点的值都大于或等于其左右子节点的值,根节点的值是最大的。 小顶堆:每个非叶子节点的值都小于或等于其左右子节点的值,根节点的值是最小的。 堆排序的思想是利用大顶堆或小 阅读全文
posted @ 2023-07-03 21:26 白露~ 阅读(30) 评论(0) 推荐(0) 编辑

摘要: 什么是基数排序? 基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。12 基数排序的方式可以采用LSD(Least significant digital)或MSD(Most significant digital),LSD的排 阅读全文
posted @ 2023-07-03 21:25 白露~ 阅读(36) 评论(0) 推荐(0) 编辑

摘要: 桶排序是一种排序算法,它的原理是将数组分到有限数量的桶里,每个桶再个别排序,最后依次把各个桶中的记录列出来。桶排序的效率取决于映射函数的选择和桶的数量。桶排序适用于数据分布比较均匀,或者比较侧重于区间数量的情况。 下面是我为你写的博客正文,希望对你有帮助: 桶排序算法及其Java实现 什么是桶排序? 阅读全文
posted @ 2023-07-03 21:25 白露~ 阅读(233) 评论(0) 推荐(0) 编辑

摘要: 计数排序是一种非比较的排序算法,它的时间复杂度是O(n+k),其中n是待排序数组的长度,k是数组中的最大值。计数排序的基本思想是,对于每个输入元素x,确定小于等于x的元素个数,然后把x放在输出数组中对应的位置上。为了实现这个过程,需要一个额外的数组C,用来存储每个元素出现的次数,以及一个累加数组D, 阅读全文
posted @ 2023-07-03 21:23 白露~ 阅读(13) 评论(0) 推荐(0) 编辑

摘要: 简单插入排序是一种基本的排序算法, 它的思想是 将待排序的元素逐个插入到已经有序的数组中,从而得到一个新的有序数组。 它的时间复杂度是O(n^2),空间复杂度是O(1),是一种稳定的排序算法。 简单插入排序的过程如下: 从第二个元素开始,依次取出每个元素,与前面已经有序的元素进行比较。 如果当前元素 阅读全文
posted @ 2023-07-03 21:23 白露~ 阅读(43) 评论(0) 推荐(0) 编辑

摘要: 1. 算法思想 简单选择排序是一种基本的排序算法, 它的思想是 每次从待排序的序列中选择一个最小(或最大)的元素,放到已排序的序列末尾,直到所有元素都排好序。 它的时间复杂度是O(n^2),空间复杂度是O(1)。 2. 图解 3. JAVA实现 下面是简单选择排序的JAVA实现: public cl 阅读全文
posted @ 2023-07-03 21:23 白露~ 阅读(32) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 排序算法是在生活中随处可见,也是算法基础 2. 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下 阅读全文
posted @ 2023-07-03 21:11 白露~ 阅读(82) 评论(0) 推荐(0) 编辑

摘要: 1. 什么是 跨域请求 跨域请求是指浏览器向不同域名的服务器发送请求,例如从http://www.a.com向http://www.b.com发送请求。由于浏览器的同源策略,跨域请求会受到限制,需要服务器端或客户端进行处理。同源策略是为了保证用户信息的安全,防止恶意的网站窃取数据。 举例说明: 假设 阅读全文
posted @ 2023-07-03 19:31 白露~ 阅读(1293) 评论(0) 推荐(0) 编辑

摘要: 1. 计算机中常用的基本单位 计算机中常用的基本单位有以下几种: 位(bit):是计算机中最小的数据单位,存放一位二进制数,即0或1。通常用“b”来表示。 字节(Byte):是计算机中表示存储容量的最常用的基本单位。一个字节由8个二进制位组成,通常用“B”表示。一个字符占一个字节,一个汉字占两个字节 阅读全文
posted @ 2023-07-03 19:28 白露~ 阅读(2441) 评论(0) 推荐(0) 编辑

摘要: Java框架中常用的几种成熟的token生成框架有: Spring Security:一个基于Spring的安全框架,提供了声明式的安全访问控制解决方案,支持多种认证和授权机制,如OAuth2.0、JWT等。 Apache Shiro:一个轻量级的Java安全框架,提供了身份认证、授权、加密、会话管 阅读全文
posted @ 2023-07-03 19:20 白露~ 阅读(2969) 评论(0) 推荐(1) 编辑

摘要: Session、Cookie 和 Token 三种身份验证机制 在Web开发中,身份验证是一种常见的需求,它可以保证用户的安全和权限。身份验证的目的是让服务器知道用户是谁,以及用户可以做什么。但是,由于HTTP协议是无状态的,也就是说,每次请求都是独立的,服务器无法直接识别出用户的身份。因此,需要一 阅读全文
posted @ 2023-07-03 18:25 白露~ 阅读(462) 评论(0) 推荐(0) 编辑

摘要: 如何使用token进行身份认证 什么是token? token是一种用于身份认证的技术,它是一个包含用户信息和签名的字符串,通常由服务器生成并返回给客户端。客户端在每次请求时,都需要携带token来证明自己的身份。服务器通过验证token的有效性和完整性,来授权客户端访问受保护的资源。 为什么要使用 阅读全文
posted @ 2023-07-03 17:11 白露~ 阅读(787) 评论(0) 推荐(0) 编辑

摘要: Http 2.0 中的 HPACK 算法 什么是 HPACK 算法? HPACK 算法是一种用于压缩 HTTP 头部字段的算法,它在 HTTP/2 协议中被引入,以解决 HTTP/1.1 中头部字段冗余和占用带宽的问题。12 HPACK 算法的主要特点有: 它使用两个表(静态表和动态表)来将头部字段 阅读全文
posted @ 2023-07-03 15:57 白露~ 阅读(330) 评论(0) 推荐(0) 编辑