![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
菜鸟算法学习之旅
老曹喜欢IT和吉他
老实人
展开
-
欧几里德算法--求解最大公约数
概念:欧几里德算法,用于计算两个正整数a、b的最大公约数。定理:gcd(a,b) = gcd(b,a % b) ----> (a>b而且a % b不为0)证明:a表示为a = kb + r ,则r = a % b = a - kb第一步:假如a和b的一个公约数为d,则有x=a整除d,y=b整除d;第二步:因为r = a - kb,即r = xd - k(yd)原创 2014-10-24 16:08:12 · 540 阅读 · 0 评论 -
从1到1024排成一个数除以9余数
(a…ab…b) % 9 = (a…a + b…b)%9如:aa = ax10+a = a(9+1)+a = 9a+a+a aa%9 = (9a+a+a)%9 = (a+a)%9 即"从1到1024排成一个数除以9余数"等于“从1加到1024的累积和除以9的余数”即[ (1+1024)*1024/2]%9用计算器算出(1+1024)*1024/2为524800原创 2014-11-16 15:03:29 · 1284 阅读 · 0 评论 -
字符串排序--低位优先法
package com.lsd;public class LSD { public static void main(String[] args) { // TODO Auto-generated method stub String[] str = {"ab0","Hc2","cs3","ab0","sdg"}; sort(str, 3); } public stat原创 2014-11-23 21:04:11 · 614 阅读 · 0 评论 -
基于堆的优先队列
(参考算法第四版)优先队列:定义:一个合适的数据结构支持两种操作:删除最大元素和插入元素。这种数据类型叫做优先队列。插入元素:我们将新元素加到数组末尾,增加堆的大小并让这个新元素上浮到合适的位置。删除最大元素:我们从数组顶端删去最大的元素将数组的最后一个元素放在顶端,减小堆的大小并让这个元素下沉到合适的位置。应用:许多应用程序都需要处理有序的元素,但不一定要求它原创 2014-11-30 23:10:24 · 490 阅读 · 0 评论