第10章排序n上课讲义.ppt

第十章 排序;10.1 概述;10.1 概 述;一、什么是排序?;例如:; 2. 对于不稳定的排序方法,只要能举出一个实例说明即可。;三、内部排序的方法; 基于不同的“扩大” 有序序列长度的方法,内部排序方法大致可分下列几种类型:;1. 插入类;2. 交换类;3. 选择类;4. 归并类; 10. 2 插 入 排 序;有序序列R[1..i-1];实现“一趟插入排序”可分三步进行:;直接插入排序(基于顺序查找);一、直接插入排序;初始状态; 对于在查找过程中找到的那些关键字不小于R[i].key的记录,并在查找的同时实现记录向后移动;;内部排序的时间分析:;对于直接插入排序:;时间效率: 因为在最坏情况下,所有元素的比较次数总和为(0+1+…+n-1)→O(n2)。其他情况下也要考虑移动元素的次数。 故时间复杂度为O(n2) 空间效率:仅占用1个缓冲单元——O(1) 算法的稳定性:稳定; 因为 R[1..i-1] 是一个按关键字有序的有序序列,则可以利用折半查找实现“在R[1..i-1]中查找R[i]的插入位置”,如此实现的插入排序为折半插入排序。;void BiInsertionSort ( SqList L ) { } // BInsertSort;low = 1; high = i-1; while (low=high)

文档评论(0)

1亿VIP精品文档

相关文档