目录 第1章算法概述1 1.1算法与问题求解1 1.1.1算法的定义1 1.1.2问题求解2 1.2算法的要素和特性3 1.2.1算法的要素3 1.2.2算法的基本特性4 1.3算法的描述5 1.3.1基本控制结构的描述5 1.3.2C算法描述约定7 1.4算法分析9 1.4.1算法的评价标准9 1.4.2算法的时间复杂度10 1.4.3算法的空间复杂度11 1.5算法的优化12 1.5.1全局优化12 1.5.2局部优化13 1.5.3算法优化中的注意事项14第2章求值法17 2.1算法设计思想17 2.2典型例题17 2.2.1求最大值17 2.2.2求平均分20 2.2.3判断闰年22 2.2.4素数23 2.2.5孪生数25算法设计方法与优化(第2版)目录2.2.6巧排螺旋阵27 2.2.7计算器31 2.3小结34 习题34第3章累加法37 3.1算法设计思想37 3.2典型例题37 3.2.1自然数求和37 3.2.2自然数倒数求和39 3.2.3统计及格人数40 3.2.4计算π值43 3.2.5数位求和44 3.2.6小鱼游泳问题47 3.2.7判断天数49 3.3小结51 习题51第4章累乘法55 4.1算法设计思想55 4.2典型例题55 4.2.1求n的阶乘55 4.2.2除自身相乘56 4.2.3求阶乘之和59 4.2.4大整数阶乘61 4.2.5国王奖赏问题63 4.2.6计算e值65 4.3小结68 习题68第5章递推法71 5.1算法设计思想71 5.2典型例题72 5.2.1兔子繁殖问题72 5.2.2最大公约数问题74 5.2.3猴子吃桃问题76 5.2.4杨辉三角形问题77 5.2.5伯努利装错信封问题80 5.2.6分西瓜问题84 5.3小结85 习题86第6章递归法89 6.1算法设计思想89 6.2典型例题89 6.2.1母牛繁殖问题89 6.2.2输出各位数字 91 6.2.3最大值问题93 6.2.4求数根95 6.2.5数组逆置97 6.2.6汉诺塔问题100 6.3小结101 习题102第7章枚举法105 7.1算法设计思想105 7.2典型例题105 7.2.1百鸡问题105 7.2.2水仙花数108 7.2.3完数110 7.2.4可逆素数112 7.2.5钱币兑换问题115 7.2.6求数值平衡数117 7.2.7狱吏问题120 7.3小结122 习题122第8章分治法125 8.1算法设计思想125 8.2典型例题125 8.2.1折半查找125 8.2.2金块问题127 8.2.3美好字符串130 8.2.4归并排序135 8.2.5大整数乘法139 8.2.6逆序数141 8.3小结143 习题143第9章贪心法147 9.1算法设计思想147 9.2典型例题148 9.2.1找零钱问题148 9.2.2最优装载151 9.2.3平衡字符串155 9.2.4小明的糖果158 9.2.5埃及分数问题160 9.2.6多机调度问题164 9.3小结167 习题168第10章回溯法171 10.1算法设计思想171 10.2典型例题172 10.2.1八皇后问题172 10.2.2部分和176 10.2.3桥本分数式178 10.2.4高逐位整除数182 10.2.5直尺刻度分布问题185 10.2.6素数环问题188 10.3小结192 习题193第11章动态规划法195 11.1算法设计思想195 11.2典型例题196 11.2.1数塔问题196 11.2.2零钱兑换问题200 11.2.3最长公共子序列问题202 11.2.4最长上升子序列问题206 11.2.5聪明的杰瑞210 11.3小结214 习题214第12章综合应用219 12.1上楼梯219 12.2π值求法222 12.3最大正方形226 12.4最大子段和问题232 12.5背包问题239 习题249 思政材料