算法设计
文章平均质量分 71
Blossom i
开心就好,Python123题持续更新,C语言+数字的文章选自问答的回复整理
展开
-
算法与分析实验3: 利用预排序、堆排序和计数排序解决排序问题
但是对于堆的数组实现来说,一个正在被删除的元素是位于最后的,所以结果数组将恰好是按照升序排列的原始数组。//用分布计数法,对来自于有限范围整数的一个数组进行排序//输入:数组 A[0.n-1],数组中的整数位于I和u之间(l≤u)//输出:A中元素构成的非降序数组 S[0..n-1]计数排序是输入增强的一个例子,针对待排序列表(A[])的每一个元素,算出列表中小于该元素的元素个数,并把结果记录在一张表(count[])中,个数之处了该数在有序表中的位置。第一步:构造堆,即为一个给定的数组构造一个堆。原创 2024-04-11 23:05:43 · 735 阅读 · 0 评论 -
算法设计与分析实验2 :利用蛮力法、减治法和分治法解决排序问题
快速排序的核心是分治思想:假设我们目标是从小到大的顺序排列,我们找到数组中一个数作为分割值,把比分割值小的数都放在数组的左边,把比分割值大的都放在数组的右边,这样就可以确定分割值的位置。可以从右到左扫描这个有序的子数组,直到遇到第一个小于等于 A[n-1]的元素,然后把A [n-1]插在该元素的后面。//输入:n个可排序元素构成的一个数组 A[O..n-1]//输出:非降序排列的数组 A[0..n-1] for i←1 to n-l do。模的解,并将元素A[n-1]考虑进来,来得到原问题的解呢?原创 2024-01-23 13:30:00 · 921 阅读 · 0 评论 -
算法设计与分析实验1:利用减治法和分治法来处理同一个问题
大整数乘法是两个大整数X、Y,要求X*Y的乘积,普通的算法就是把X与Y中的每一项去乘,但是这样的乘法所需的时间复杂度为O(N^2),(因为每一位要逐个去乘),所以效率比较低下。是对n分类讨论,如果n是偶数,则n x m=n/2 x 2m,如果n是奇数,则需对公式做轻微的调整:n x m= (n-1)/2 x 2m +m,一直到m等于1时,最后的值即为最开始相乘的值。我们还是假设有两个大整数X、Y,它们的位数不相同,现在要求X*Y的乘法,我们采用分治的算法,将X、Y分别拆分为A与B、C与D,原创 2024-01-23 16:30:00 · 930 阅读 · 1 评论 -
进制转换(二进制、八进制、十进制、十六进制)超详细版
再来贴一张小数部分进制表。原创 2023-01-18 20:42:18 · 4569 阅读 · 0 评论 -
算法设计4:利用动态规划的方法解决子集等和分割判断问题
题目:给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.原创 2022-12-23 16:23:19 · 406 阅读 · 0 评论 -
算法学习2:分布计数排序(时空权衡) c语言实现
(算法设计与分析基础第3版 潘彦译)第七章时空权衡 7.1计数排序 分布计数排序篇分布计数,这种排序方法是线性效率的,用空间换时间、利用输入列表的特性,使得效率大大提升。 【分布计数排序伪代码自然语言】算法 DistributionCountingSort(A[0..n -1], l, u)//用分布计数法,对来自于有限范围整数的一个数组进行排序//输入:数组 A[0.n-1],数组中的整数位于I和u之间(l≤u)//输出:A中元素构成的非降序数组 S[0..n-1]for j←0 to u-原创 2022-12-05 23:26:04 · 1250 阅读 · 1 评论 -
算法学习1:预排序(检验数组中元素的唯一性)c++语言
(算法设计与分析基础第3版 潘彦译)6.1预排序 ,例一:检验数组中元素的唯一性:伪代码自然语言与程序代码设计 如果这个元素唯一性问题看上去很熟悉,这就对了我们曾在 2.3 节(参见例 2)中考虑过该问题的一个蛮力算法。这个蛮力算法对数组中的元素对进行比较,直到找到两个相等的元素,或者所有的元素对都已比较完毕。它的最差效属于日(n)。 换一种做法,我们可以先对数组排序,然后只检查它的连续元素:如果该数组有相等的元素,则一定有一对元素是相互紧挨着的,反之亦然。算法 Pres原创 2022-12-07 11:15:00 · 722 阅读 · 0 评论 -
算法学习1:预排序(检验数组中元素的唯一性)c语言
(算法设计与分析基础第3版 潘彦译)6.1预排序 ,例一:检验数组中元素的唯一性:伪代码自然语言与程序代码设计 如果这个元素唯一性问题看上去很熟悉,这就对了我们曾在 2.3 节(参见例 2)中考虑过该问题的一个蛮力算法。这个蛮力算法对数组中的元素对进行比较,直到找到两个相等的元素,或者所有的元素对都已比较完毕。它的最差效属于日(n)。 换一种做法,我们可以先对数组排序,然后只检查它的连续元素:如果该数组有相等的元素,则一定有一对元素是相互紧挨着的,反之亦然。原创 2022-12-05 20:27:04 · 1265 阅读 · 0 评论