排序等经典问题.pptVIP

  • 3
  • 0
  • 约2.15千字
  • 约 14页
  • 2017-08-18 发布于安徽
  • 举报
排序等经典问题 辽宁科技大学 黄建 mtysoft@163.com 排序算法 冒泡法排序2-1 冒泡法排序2-2 选择法排序 插入法排序2-1 插入法排序2-2 筛选法求素数 彩票问题 双色球彩票 函数和带参数的宏 哥德巴赫猜想 验证哥德巴赫猜想一 课后题:填数游戏 * * 排序算法 冒泡法排序 选择法排序 插入法排序 for (i = 0; i 4; i++) for (k = 0; k 4-i; k++) if (a[k] a[4-i]) t=a[k],a[k]=a[4-i],a[4-i]=t; i = 0, 0           1 2 3 4 k 4-i 5 2 3 8 4 5 4 3 4-i 8 5 1, k 4-i 2, k 3 4 3 4-i k 2 for (i = 0; i 4; i++) for (k = i+1; k 5; k++) if (a[i] a[k]) t=a[i],a[i]=a[k],a[k]=t; 0           1 2 3 4 k i 5 2 3 8 4 5 4 8 5 k i k i 3 5 5 k 2 i i = 0, 0           1 2 3 4 4-i 6 5 3 8 4 6 3 3 4-i 8 4 1, k 4-i 2, 4 4 k 4-i m 5 m k 3 k m for (i = 0; i 4; i++) { for (m=0, k=1; k = 4-i; k++) if (a[k] a[m]) m = k; t=a[m],a[m]=a[4-i],a[4-i]=t; } 0 1 2 3 4 3 4 6 8 6 8 i = 4; t = a[i]; for (k = i - 1; k = 0; k--) if (a[k] t) a[k+1] = a[k]; else break; a[k+1] = t; k k k t for (i = 1; i = 4; i++) { t = a[i]; for (k = i - 1; k = 0; k--) if (a[k] t) a[k+1] = a[k]; else break; a[k+1] = t; } i = 1, 0           1 2 3 4 6 5 3 8 4 6 5 4 8 2, 3, t = 3 6 6 5 5 k -1 8 k k k k 3 8 4 5 4 for (i = 2; i 100; i++) a[i] = i; for (i = 2; i 100; i++) if (a[i] != 0) { printf(%d,, i); for (k = 2 * i; k 100; k += i) a[k] = 0; }                           12 11 10 9 8 7 6 5 4 3 2 1 0 2 3 4 5 6 7 8 9 10 11 12 m 选 n 组合: m! ────── n! (m-n)! 双色球 35选7 双色球: 红球:33选6 蓝球:16选1 29选7                                                                                                 结余 兑奖 累计 金额 数量 次 5 3 1 2 2 1 2 3 4 5 16 17 18 10 4 4 6 2 20 6 8 14 4 40 10 16 30 8 80 18 32 62 16 216 217 218 = 65536 = 131072 = 262144 32770 65538 131074 有类型转换 无类型转换 有时间开销 执行效率高 变量占空间 参数是形式 传递数值 替换文本 运行时执行 编译时替换 int f(int x, int y) { return x * y; } #define F(x,y) (x)*(y) 3 3 5 3 7 3 7 5 11 3 不小于6的偶数=2个奇素数之和。 6 8 10 12 14 9 3 3 3 11 5 3 3 13 5 3 5 15 7 3 5 17 11 3 3 不小于9的奇数=3个奇素数之和。 2 1 12 9 3 7 5 + + for (b = 3; b a; b += 2) if (prime(b) prime(a-b)) { printf(%d=%d+%d, a,b,a-b)

文档评论(0)

1亿VIP精品文档

相关文档