![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
lwnylslwnyls
软件开发
展开
-
白话经典算法系列之一 冒泡排序的三种实现
冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N。 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。 3.N=N-1,如果N不为0就重复前面二步,否则排序完成。 按照定义很容易写出代码: //冒泡排序1 void BubbleSort转载 2013-01-29 22:40:21 · 525 阅读 · 0 评论 -
C/C++面试之算法系列--如何利用数学思想解1/2/5组合问题
转载:http://blog.csdn.net/sailor_8318/article/details/3120812 华为笔试题:写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。如:100个1是一个组合,5个1加19个5是一个组合。。。。 答案:最容易想到的算法是: 设x是1的个数,y是2的个数,z是5的个数,number是组合数 x+2*y+转载 2013-02-20 23:04:26 · 508 阅读 · 0 评论 -
幂取模算法
1. 普通的计算方式 先计算ab,再取模,这样很容易益处,在实际中基本不可行,因为幂次很大可能会超过计算机的数值范围。 2. 同余公式 设c是a除以m的余,即c=a-k*m,也可用同余表达式a≡c (mod m)表示,则可以证明: 2.1 同余性质1: 对任意整数b ab≡bc (mod m) 证明:原创 2014-03-19 11:06:38 · 1059 阅读 · 0 评论