算法与数据结构
小月贺金山
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
完数问题
一个数如果恰好等于它的因子之和,这个数就称为“完数”。如6=1+2+3。编程求2000以内的所有“完数”,并按以下格式输出: 6=1+2+3 int main() { for(int num=1;num<=2000;num++) { int s=0; for(int i=1;i<num;i++){ if(num%i==0) { s+=i; } }原创 2013-12-08 10:05:42 · 718 阅读 · 0 评论 -
素数问题
#include #include using namespace std; int main() { int i,n; cin>>n; for(i=2;i<=sqrt(n)&&n%i!=0;i++); if(i<sqrt(n)) cout<<n<<"不是素数"; else cout<<n<<"是素数"<<endl; }原创 2013-12-08 09:36:46 · 455 阅读 · 0 评论 -
排序算法
排序算法是经常使用的算法,在STL中也有一个比较牛X的快速排序(sort),但是我们不能只会调用sort呀!?作为一个好学的同学,我们要知道各种排序的内部是怎么实现滴~~~提到排序算法我们要知道两个经常提到的概念: (1)排序算法的稳定性:所谓“稳定性”是指,在待排序数组出现的两个相同的元素,排序之后相对维持保持不变。比如:待排序数组为arr[] = {1,4,3,1},排序之后元素变为ar转载 2013-12-15 20:22:32 · 457 阅读 · 0 评论 -
二分查找
二分查找 分析:所谓二分查找就是每次与被查找数组的中间元素进行比较,若是找到目标,则找到,否则与剩余一半的元素进行继续查找。为保证每次查找的元素是中间大小的元素,二分查找前数组必须按从小到大或从大到小排好序。由于每次查找范围减少一半,因此,n个元素的数组只需查找log2n次。若n=1024,则最多只需查找10次,因为log2n=log21024=10。 int main() { in原创 2013-12-09 19:15:53 · 513 阅读 · 0 评论 -
魔方阵
输出n阶“魔方阵”。/*n为1~15之间的奇数*/ (注意边界部分) 特点:每一行、列、对角线之和相等。 确定每个数位置的原则是: (1)第一个数(1)为第0行中间位置; (2)若当前为右上角位置,则下一数放在其下方; (3)否则放在减1行加1列位置; (4)若所在位置已经有数,则退回到原数下方位置。 int main() { while(true) { int n原创 2013-12-09 19:06:25 · 598 阅读 · 0 评论 -
打印规律图形
1.输入n则打印n行由“*”构成的正三角形,如输入5则打印如下图形(灰色*部分代表空格,只显示红色*部分)。 ***** 1 ****** 2 ******* 3 ******** 4 ********* 5 int main() { for(int i=1;i<=5;i++) { for(int k=1;k<=(5-i);k++) cout原创 2013-12-08 10:00:11 · 1015 阅读 · 0 评论
分享