介绍 二分查找(binary search)是一种基于分治策略的高效搜索算法。它利用数据的有序性,每轮缩小一半搜索范围,直至找到目标元素或搜索区间为空为止。 给定一个长度为 的数......
分类:算法
数据结构之链表
定义 内存空间是所有程序的公共资源,在一个复杂的系统运行环境下,空闲的内存空间可能散落在内存各处。我们知道,存储数组的内存空间必须是连续的,而当数组非常大时,内存可能无法提供如此大的连续空间。此时链表......
数据结构之 B 树和 B+ 树
B 树 B 树和平衡二叉树稍有不同的是 B 树属于多叉树,又名:平衡多路查找树(查找路径不止两个) 规则: 排序方式:所有节点关键字是按递增次序排列,并遵循左小右大原则;子节点数:非叶节点的子节点数&......
二叉树遍历教程:先序、中序、后序、层序遍历的实现与应用
二叉树 结构 二叉树是一种常见的树状数据结构,其特点是每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树可以为空树,也可以由一个根节点和分别作为根的左子树和右子树组成,而左右子树本身也必须是......
签名算法
在 Python 中,可以使用 HMAC(Hash-based Message Authentication Code)算法来实现客户端对传输数据的签名,以及服务端对签名的校验。HMAC 使用一个密钥......
图片压缩原理
前言 图片压缩是一种减少图像文件大小的过程,旨在使图像占用更少的存储空间或在网络上更快地传输。 图片压缩的关键是在保持可接受图像质量的同时减小文件大小。在选择压缩方法和设置压缩级别时,需要根据图像的用......
算法-动态规划
基本概念 动态规划(Dynamic Programming,DP)是一种解决优化问题的算法思想,通常用于处理具有重叠子问题和最优子结构性质的问题。动态规划算法将大问题分解成多个小问题,通过求解小问题的......
斐波那契数列 递归和递归优化
斐波那契数列: 经典数学问题之一;斐波那契数列,又称黄金分割数列,指的是这样一个数列: 1、1、2、3、5、8、13、21、…… 看......
十种排序算法 详解
程序 = 数据结构 + 算法 在我们生活的这个世界中到处都是被排序过的。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东西......
递归算法 详解
什么是递归算法? 程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语言中广泛应用。一个方法或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的......