掌握归并排序的过程和算法实现.PPTVIP

  • 3
  • 0
  • 约1.36万字
  • 约 73页
  • 2018-12-25 发布于天津
  • 举报
掌握归并排序的过程和算法实现

内部排序的分类 1. 插入排序; 2. 选择排序; 3. 交换排序; 4. 归并排序; 5. 基数排序; 示 例 10.2.2 折半插入排序 主要思想 当第i+1个记录要插入前i个有序记录序列时,可利用折半查找方式确定插入位置,以减少比较次数 希尔排序示例 冒泡排序改进 快速排序枢轴的取法 快速排序的平均时间复杂度为O(nlog2n) 如果待排序记录的初始状态为按关键字有序,快速排序将蜕化为起泡排序,即时间复杂度为O(n2) 为了避免出现一趟排序后记录集中在枢轴一侧的情况,快速排序前先进行预处理。 即:比较R[s].key和R[t].key和R[?(s+t)/2?].key,然后取关键字为“三者之中值”的记录作为枢轴记录,将其与R[s]互换即可。 直接选择排序示例 直接选择排序的性能分析 堆排序 堆排序即是利用堆的特性对记录序列进行排序的一种内部排序方法。 排序过程 根据初始关键字序列建立一个堆,输出其堆顶元素,即先选出关键字最大或最小的记录,然后与序列中最后一个记录(第n个记录)交换; 将序列中剩余的n-1个记录重新调整为一个堆(调堆的过程称为“筛选”),从而得到关键字次大或次小的记录,同样将堆顶记录和第n-1个记录交换; 如此反复直至排序结束。 建 堆 把整个关键字序列看成是一棵完全二叉树,“建堆”即把树中以每一个结点为根的子树都调整为

文档评论(0)

1亿VIP精品文档

相关文档