16、算法与密码学基础:从排序到加密的全面解析

算法与密码学基础:从排序到加密的全面解析

1. 排序算法——冒泡排序

冒泡排序是常见排序算法中效率较低的一种。其工作原理是在列表中,较大的值“上浮”到列表末尾,较小的值“下沉”到列表开头,故而得名。在最佳情况下(列表已经有序),冒泡排序的复杂度接近常数 n;一般情况下,复杂度为 O(n²)。尽管它速度较慢,但由于实现简单,仍被广泛使用。许多对算法效率和分析理解不够深入的程序员会依赖冒泡排序。

2. 欧几里得算法

欧几里得算法用于求两个整数的最大公约数。对于大数而言,这并非易事,且该算法在后续要学习的密码学中会发挥作用。算法步骤如下:
设 k 为算法步骤的计数,从 0 开始。初始步骤对应 k = 0,后续依次为 k = 1, k = 2, k = 3 等。在第一步之后,每一步都以前一步的两个余数 rk - 1 和 rk - 2 开始,且每一步的余数都小于前一步的余数,即 rk - 1 < rk - 2。第 k 步的目标是找到商 qk 和余数 rk,满足公式 (r_{k - 2}=q_{k}r_{k - 1}+r_{k}),其中 (r_{k}<r_{k - 1})。

例如,求 gcd(2322, 654):
- (2322 = 654 * 3 + 360),则 gcd(2322, 654) = gcd(654, 360)
- (654 = 360 * 1 + 294),则 gcd(654, 360) = gcd(360, 294)
- (360 = 294 * 1 + 66),则 gcd(360, 294) = gcd(294, 66)
- (294 = 66 * 4 + 30),则 gcd(294

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值