algorithm
文章平均质量分 57
dragon-w
这个作者很懒,什么都没留下…
展开
-
算法-全排列(含参考实现代码)
从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。公式:全排列数f(n)=n!(定义0!=1)---百度百科。原创 2022-12-01 20:22:45 · 635 阅读 · 0 评论 -
算法-选择排序
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。可以看到,我们将一个乱序的数组按照从小到大的顺序完成了排序,但上面的例子只能对int数组进行排序,为了通用性,我们同样参照上一篇线性排序的例子一样,基于java的泛型对代码进行优化。我们看到数据规模相差10倍的情况下,耗时差了125倍,约等于100倍,这样同样说明了,选择排序的时间复杂度是O(n^2)的。执行后没有抛出异常,输出了统计时间,说明我们的算法是正确的。原创 2022-11-27 14:57:25 · 67 阅读 · 0 评论 -
算法基础-循环不变量(loop invariant)
在计算机科学中,循环不变式(loop invariant,或循环不变量、循环不变条件,也有译作循环不变性),是一组在循环体内、每次迭代均保持为真的性质(表达式),通常被用来证明程式或伪码的正确性(有时但较少情况下用以证明算法的正确性)。简单说来,“循环不变式”是指在循环开始和循环中,每一次迭代时为真的性质。这意味着,一个正确的循环体,在循环结束时“循环不变式”和“循环终止条件”必须同时成立。原创 2022-11-25 16:03:20 · 859 阅读 · 0 评论 -
算法-线性查找
查找是对具有相同属性的数据元素(记录)的集合(数据对象)进行的,称之为表或文件,也称字典。对于表的查找,若仅对表进行查找操作,而不能改变表中的数据元素,为静态查找;线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的K值相等,则查找成功;若比较结果与文件中n个记录的关键字都不等,则查找失败。我们再仔细观察上述代码,就不难发现其中的缺陷,比如我们现在实现的这个入参是确定的,只能针对int类型数组进行查找,那我如果我们要查找字符串呢,浮点呢?原创 2022-11-22 10:27:35 · 641 阅读 · 0 评论