重点:几种基本设计方法
难点:理解他们的区别,并进行分析
亮点:结合下午试题进行讲解
主要内容:排序算法、查找算法、数值计算方法、字符串处理方法、数据压缩算法、图的相关算法;迭代法、穷举法、递推法、递归法、回溯法、贪心法、分治法、动态规划法;算法与数据结构的关系,算法效率,算法设计,算法描述,算法的复杂性。
一、算法设计(20051012)在线专题授课音视频
(软考程序员、软件设计师 课程正式学员可登录学习系统,进入对应课程,在“课程资料室”内进行在线浏览。)
二、算法设计(20051012)在线答疑整理
1.堆排序例子:

排序:

2.希尔排序、简单选择排序、快速排序和堆排序是不稳定的排序方法, 试举例说明。
【解答】
(1) 希尔排序 { 512 275 275* 061 } 增量为2
{ 275* 061 512 275 } 增量为1
{ 061 275* 275 512 }
(2) 直接选择排序 { 275 275* 512 061 } i = 1
{ 061 275* 512 275 } i = 2
{ 061 275* 512 275 } i = 3
{ 061 275* 275 512 }
(3) 快速排序 { 512 275 275* }
{ 275* 275 512 }
(4) 堆排序 { 275 275* 061 170 } 已经是最大堆,交换275与170
{ 170 275* 061 275 } 对前3个调整
{ 275* 170 061 275 } 前3个最大堆,交换275*与061
{ 061 170 275* 275 } 对前2个调整
{ 170 061 275* 275 } 前2个最大堆,交换170与061
{ 061 170 275* 275 }