《算法设计》是CSP-J/S认证与NOI信息学竞赛的第3部分课程。本课程的目的是培养学生分析问题和解决问题的能力,使学生掌握算法设计的基本技巧和方法,熟悉算法分析的基本技术,并能熟练运用一些常用算法,解决一些较综合的问题,为学生进一步学习后续课程奠定良好的基础。
通过课堂讲授、课堂练习和讨论互动、上机实验等教学手段,系统介绍计算机算法的有关概念和算法设计的基本技巧。使学生掌握计算机算法的基本概念和特性,了解计算机相关学科中算法分析与设计技巧的重要性,掌握算法时间复杂性的分析方法和基本的算法设计策略,结合具体问题实例,使学生重点掌握分治法、蛮力法、回溯法、分支限界法、贪心法、动态规划法等常见的算法设计策略,具备灵活运用所学解决实际应用问题的能力。
第1模块概述
介绍算法的概念。求解旋转词问题求解最大整数相乘问题求解数字排序问题求解两种排序方法问题求解删除公共字符问题求解旋转词问题求解最大整数相乘问题求解移动字符串问题求解门禁系统第2模块递归算法设计技术
介绍递归的概念、递归算法设计方法和相关示例。
求解从入口到出口的所有迷宫路径(递归求解)汉诺塔问题(递归求解)汉诺塔问题(利用栈消除递归)生成n个数的所有排列(递归求解)求多项式值的Horner算法(递归求解)求多项式值的Horner算法(迭代求解)逆置单链表判断两棵二叉树是否同构求二叉树中最大和的路径输出表达式树等价的中缀表达式求两个正整数x、y的最大公约数求解n阶螺旋矩阵问题求解幸运数问题求解回文序列问题求解投骰子游戏问题第3模块分治法
介绍分治法的策略和求解过程、讨论采用分治法求解经典问题。
快速排序归并排序查找最大元素和次大元素折半查找寻找一个序列中的第k小的元素求解最大连续子序列和问题求解棋盘覆盖问题求解循环日程安排问题求解大整数乘法问题求解查找假币问题求解众数问题求解逆序数问题求解半数集问题求解一个整数数组划分为两子数组问题求解满足条件的元素对个数问题求解查找最后一个小于等于指定数的元素问题求解递增序列中与x最接近的元素的问题求解按“最多排序”到“最小排序”的顺序排列问题第4模块蛮力法
介绍蛮力法的特点、蛮力法的基本应用示例、递归在蛮力法中应用示例。
求解最大连续子序列和问题求解幂集问题求解0/1背包问题求解全排列问题求解任务分配问题求解组合问题求解迷宫问题求解sqrt(n)问题求解钱币兑换问题求解一元三次方程问题求解好多鱼问题求解两个正整数之间完全数的个数求解推箱子游戏问题第5模块回溯法
介绍解空间概念和回溯法算法框架,讨论采用回溯法求解的经典问题。
求解简单装载问题求解复杂装载问题求解子集和问题求解n皇后问题求解图的m着色问题求解任务分配问题求解活动安排问题求解流水作业调度问题求解查找假币问题求解填字游戏问题求解组合问题求解满足方程解问题求解会议安排问题求解最小机器重量设计问题1求解最小机器重量设计问题2求解密码问题求解马走棋盘问题求解最大团问题求解幸运的袋子问题第6模块分枝限界法
介绍分枝限界法的特点和算法框架,队列式分枝限界法和优先队列式分枝限界法,讨论采用分枝限界法求解经典问题。
0/1背包问题求解任务分配问题求解流水作业问题求解4皇后问题求解布线问题求解迷宫问题求解解救Amaze问题求解饥饿的小易问题求解最小机器重量设计问题1求解最小机器重量设计问题2求解最少翻译个数问题第7模块贪心法
介绍贪心法的策略、求解过程和贪心法求解问题应具有的性质,讨论采用贪心法求解经典问题。
求解活动安排问题求解背包问题求解最优装载问题求解田忌赛马问题求解多机调度问题求解哈夫曼编码问题求解流水作业调度问题求解一个序列中出现次数最多的元素问题求解删数问题求解汽车加油问题求解磁盘驱动调度问题求解仓库设置位置问题求解最大乘积问题求解区间覆盖问题求解WoodenSticks加工木棒问题求解奖学金问题求解赶作业问题第8模块动态规划
介绍动态规划的原理和求解步骤,讨论采用动态规划法求解经典问题。
求解整数拆分问题求解最大连续子序列和问题求解三角形的最小路径问题求解最长公共子序列问题求解最长递增子序列问题求解0/1背包问题求解完全背包问题求解资源分配问题求解会议安排问题利用滚动数组求解0/1背包问题求解矩阵最小路径和问题求解添加最少括号问题求解买股票问题求解双核处理问题求解拆分集合为相等的子集合问题求解公路上任意两点的最近距离求解袋鼠过河问题求解数字和为sum的方法数问题求解人类基因功能问题求解分饼干问题求解堆砖块问题求解小易喜欢的数列问题求解石子合并问题求解相邻比特数问题求解周年庆祝会问题授课教师王梓楠,天津大学计算机专业,10年IT软件工程师背景,年开始从事信息学奥赛培训,主讲C++编程基础、面向对象程序设计、数据结构、算法设计、C++游戏创意编程、python编程基础、python游戏创意编程。王老师上课富有激情,严谨认真,算法功底深厚,讲课深入浅出,获得学生和家长的高度认可。
获奖学生
刘润宇,年北京市海淀区中小学生科技竞赛信息学奥林匹克比赛一等奖
白隽楚,年CCF举办CSP-J(原NOIP普及组)二等奖
授课方式Zoom直播在线授课,为保障学生在线学习的质量,采用小班授课,每班不超过8人。每个学生和老师都可以直接提问交流。
收费标准数据结构,每学时元,10次课一交费
联系人:王老师
计算机科学部落