【学习目标】
  1.理解排序的定义和各种排序方法的特点,并能加以灵活应用。排序方法有不同的分类方法,基于"关键字间的比较"进行排序的方法可以按排序过程所依据的不同原则分为插入排序、交换排序、选择排序、归并排序和计数排序等五类。
  2.掌握各种排序方法的时间复杂度的分析方法。能从"关键字间的比较次数"分析排序算法的平均情况和最坏情况的时间性能。按平均时间复杂度划分,内部排序可分为三类:O (n2) 的简单排序方法,O (n・logn) 的高效排序方法和O (d・n)的基数排序方法。
  3.理解排序方法"稳定"或"不稳定"的含义,弄清楚在什么情况下要求应用的排序方法必须是稳定的。
 
 
【学习目标】
 
  【重点和难点】
  希尔排序、快速排序、堆排序和归并排序等高效方法是本章的学习重点和难点。
 
  【重点和难点】  
  【知识点】
  排序、直接插入排序、折半插入排序、表插入排序、希尔排序、起泡排序、快速排序、简单选择排序、堆排序、2-路归并排序、基数排序、排序方法的综合比较。
 
  【知识点】  
  【学习指南】
  本章学习的要点主要是了解各种排序方法实现时所依据的原则以及它们的主要操作("关键字间的比较"和"记录的移动")的时间分析。学习中应注意掌握各种排序方法实现的要点,可通过对基础知识题中算法的手工执行和比较分析,切实掌握各种排序过程的排序特点所在,注意同一排序方法在不同的教科书上可以有不同书写形式描述的算法。在学习本章过程中需练习的算法设计题为:10.23,10.25,10.32,10.34,10.38 和 10.42。
 
  【学习指南】  
  【课前思考】
  思考题 1. 你熟悉排序吗?你过去曾经学过哪些排序方法?

  思考题 2. 你自己有没有编过排序的程序?是用的什么策略?  
  【课前思考】