新手学算法
文章平均质量分 85
XC_LeoChen
这个作者很懒,什么都没留下…
展开
-
简单插入排序
算法思路:简单插入排序的思路是把一个数列分为两部分,左边是有序列,右边是无序列,每次将无序列的第一个插入到有序列的正当位置,使有序列增加一个同时无序列减少一个,当无序列的个数为零时,整个数列就排完序了。例如将 5,4,2,3,1 调整为升序时,开始时第一个数在有序列中,第二个到第四个数在无序列中。我们把无序列的第一个数,也就是数字4,插入到有序列中,4比5小,所以插到5前面,数列调整为4,原创 2018-01-13 15:13:56 · 204 阅读 · 0 评论 -
辗转相除法、相减法求两自然数最大公约数和最小公倍数
l 辗转相除法算法描述:辗转相除法是求两个正整数的最大公约数的一种算法.有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数的最大公约数 ③ 若c≠0,则a=b,b=c,再回去执行① 例如求27和15的最大公约数过程为: 27÷15余1215÷12余312÷3余0因此,3即为最大公约数数据流程图:算法的数学证明:证明辗转相除法的确可原创 2018-01-05 21:00:02 · 3401 阅读 · 0 评论 -
简单的排序算法--冒泡排序、选择排序
冒泡排序冒泡排序是一种理解起来较简单的排序算法,适合新手学习。算法思路对于一个非递增有序的数列,要将它进行递增排序,可以从第一个开始,从前至后依次将相邻两数做比较,大的数放后面,这样一次遍历比较后最大的数就被放到最后面了,然后再次从第一个数到最后第二个数同样做相邻两两比较并将大数放在后面一个,这样第二遍后整个数列第二大的数就被放在最后第二个了,这个过程是不是很像气泡冒出水面呢?原创 2018-01-06 10:05:08 · 263 阅读 · 0 评论 -
二分查找
二分查找算法思路二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果xa[n/2],则只要在数组a的右半部搜索x.二分查找的数列必须是已经有序排列的!时间复杂度时间复杂度无非就是while循环的次数!总共有n个元素,渐渐跟下去就是n,n/2,n/4,....n/2^k(接下来操作元素原创 2018-01-06 11:49:43 · 151 阅读 · 0 评论