[理学]第七章排序.pptVIP

  • 0
  • 0
  • 约4.43千字
  • 约 44页
  • 2018-03-02 发布于浙江
  • 举报
[理学]第七章排序

插入排序 插入排序 依次将未排记录插入到有序子表中,并使插入后仍保持有序,直到全部记录插入完毕 插入排序示例 插入排序实现 插入排序时间复杂度 O(n2) 冒泡排序 一趟排序的过程: 通过相邻两数间的比较和位置的交换,使最大的数如气泡一般逐渐往右“漂浮”直至“水面”。 整个过程: 每趟排序后都得到一个新的已排序的数,对剩下未排序的数继续下一趟排序,直到全部有序。 冒泡排序示例 全部排序过程 冒泡排序时间复杂度 O(n2) 归并排序 归并排序 分治法 把待求解问题分解为更小的问题,然后对小问题加以解决 归并排序 对假定对长度为n的数组a[0, …, n-1]排序 如果n=1,结束 如果n1,对数组a[0, …, n/2]和a[n/2 + 1, …, n-1]分别进行递归排序 对两部分已排序的数组进行合并 merge mergeSort 归并排序的时间复杂度 递归树 快速排序 分治法 分:以数组中的某一项元素x为枢轴(pivot),把数组分成两部分,前一部分的所有元素均≤x,后一部分的所有元素均≥x 治:对前后两部分数组采用同样的办法处理 一次“分”(一趟排序)的过程在O(n)时间内完成 一趟排序 一趟排序的实现 int partition(int a[], int low, int high) { // Suppose a[low] is pivot int i

文档评论(0)

1亿VIP精品文档

相关文档