算法
文章平均质量分 90
程序研发中,解决实际问题的方法。
bjxiaxueliang
这是一个以技术分享为主要内容的博客,致力于分享Android、OpenGL ES、Vulkan、移动端音视频等领域的技术文章和经验总结,希望能为广大技术爱好者和从业人士提供有价值的信息和思路。同时,我也会不定期地分享我对某些技术行业前景的分析和思考,希望能为朋友们带来一些启示和思路。
展开
-
一文读懂字符编码ASCII、Unicode与UTF-8
最近在写一个Http协议栈当涉及CRLF控制字符写入时,发现自己对CRLF与\r\n的关系不太了解,因此决定详细学习一下;查阅资料的同时,又遇到UTF-8与ASCII编码的疑问。原创 2023-03-13 18:07:45 · 735 阅读 · 0 评论 -
一文详解 Base64编码原理
Base64 是一种 编码方式,最早出现在电子邮件传输协议中。 电子邮件问世之初,传递消息时只支持 ASCII 字符,后来随着电子邮件的广泛使用,传递非ASCII字符内容的需求增加,例如:传输中文、传输文件(图片、视频)。原创 2021-08-04 11:01:52 · 1233 阅读 · 0 评论 -
一文详解 MD5 信息摘要算法
对于软件研发人员来说 MD5 不是一个陌生的词汇,平时的软件研发中,经常使用 MD5 校验消息是否被篡改、验证文件完整性,甚至将MD5当作加密算法使用。MD5虽不陌生,但不是所有研发人员都了解其算法原理,通过这篇文章详细学习MD5 摘要算法。原创 2021-07-13 09:11:14 · 3526 阅读 · 0 评论 -
一文读懂 URLEncode:URL编码原理解析
使用浏览器进行Http网络请求时,若请求query中包含中文,中文会被编码为 `%+16进制+16进制`形式,但你真的深入了解过,为什么要进行这种转义编码吗?编码的原理又是什么?原创 2021-02-23 20:58:26 · 7254 阅读 · 0 评论 -
一文详解 RSA 非对称加密算法
非对称加密算法指的是 加、解密使用不同的密钥,一把为公开的公钥,另一把为私钥。 公钥加密的内容只能由私钥进行解密,反之由私钥加密的内容只能由公钥进行解密。也就是说,这一对公钥、私钥都可以用来加密和解密,并且一方加密的内容只能由对方进行解密。原创 2018-10-17 17:49:28 · 3330 阅读 · 9 评论 -
编程求解根号2
编程求解根号2,不能使用内置函数sqrt#include<iostream>#include<cmath>using namespace std;double MySqrt(double n){ //此处一定为浮点数,不要用整数 double _max = n; double _min = 0.0; //此处为精度,当满足该精度时,...原创 2019-07-02 14:07:35 · 8106 阅读 · 1 评论 -
贝塞尔曲线
参考: 维基百科 算法研究之贝塞尔曲线贝塞尔曲线(The Bézier Curves),是一种在计算机图形学中相当重要的参数曲线(2D,3D的称为曲面)。 贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所发表,他运用贝塞尔曲线来为汽车的主体进行设计。 一阶贝塞尔曲线给定点P0、P1,线性贝塞尔曲线只是一条两点之间的直线。这条线由下公式给出:原创 2018-01-09 10:32:37 · 4093 阅读 · 0 评论 -
Java实现汉诺塔
public class Han { private int n = 4; private char a = 'a'; private char b = 'b'; private char c = 'c'; public static void main(String[] args) { Han towerOfHanoi = new Han();原创 2017-05-20 07:55:22 · 546 阅读 · 0 评论 -
判断一个点在任意四边形内
通过面积法,判断点P是否在四边形(A,B,C,D)内。如果在四边形内,则四边形的面积=面积(P,A,B)+面积(P,B,C)+面积(P,C,D)+面积(P,D,A); 反之不在四边形内。Java代码 public class Quadrangle { /** * 点是否在四边形内 * @param a * @param b * @param c * @param d * @para原创 2017-05-20 07:49:13 · 8027 阅读 · 1 评论 -
一群小孩围成一个圈的经典算法
问题: 一群小孩围成一个圈,设置一个数,这个数是个小于小孩总数大于0的一个整数,从第一个小孩开始报数,当其中一个小孩报到你设置的那个数的时候离开那个圈,这样一来反复报下去,直到只剩下最后一个小孩的时候那个小孩就是胜利者,写程序来找出这个小孩。import java.util.ArrayList;public class Test { static int count=0; static fin原创 2017-05-20 07:50:13 · 4488 阅读 · 0 评论 -
Java 冒泡排序
冒泡排序算法的运作如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。冒泡排序的过程图: public class Test { public s原创 2017-05-22 10:14:13 · 422 阅读 · 0 评论 -
Java实现二分查找
public class Test { public static void main(String[] args) { int[] src = new int[] { 1, 3, 5, 7, 8, 9 }; System.out.println(binarySearch(src, 3)); } /** * 二分查找算法原创 2017-05-19 15:07:44 · 374 阅读 · 0 评论 -
Java 快速排序
1、算法概念。快速排序(Quicksort)是对冒泡排序的一种改进。2、算法思想。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。3、实现思路。以第一个关键字 K 1 为控制字,将 [K 1 ,K 2 ,…,K n ] 分成两个子区,使左区所有关键原创 2017-05-19 15:06:31 · 319 阅读 · 0 评论