第十章-排序PPT课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 Data Structure;第10章 排序;Sorting Problem;Sort Any Type of Data;引言;第10章 排序;插入排序;几种常见的插入排序;直接插入排序;34;直接插入排序算法;时间复杂度分析;几种常见的插入排序;折半插入排序;A Lower Bound for Simple Sorting Algorithms;【Theorem】The average number of inversions in an array of N distinct numbers is N ( N ? 1 ) / 4.;几种常见的插入排序;希尔排序 (Donald Shell,1959);希尔排序算法思想;81;visual trace;希尔排序算法;Intuition: An hk-sorted file that is then hk?1-sorted remains hk-sorted. (一个hk-有序的数组经过hk?1-排序后仍然是hk-有序的);? Which increment sequence to use?;【Theorem】The worst-case running time of Shellsort, using Shell’s increments, is ? ( N2 ).;? Hibbard’s Increment Sequence:;? 3x+1 Increment Sequence:;? Sedgewick’s Increment Sequence:;Why are we interested in shellsort?;第10章 排序;算法思想:首先,从n个元素中选出关键字最小的元素。再从剩下的(n-1)个元素中选出关键字最小的元素,依次类推,每次从剩下的元素序列中挑出关键字最小的元素,直至序列中最后只剩下一个元素为止。这样,把每次得到的元素排成一个序列,就得到了按非递减序排列的排序序列。 常用方法: 直接选择排序 堆排序 ;直接选择排序;6;template class T void simpleSelectSort(T a[], int size) {int i, j, k; //k记录选择过程中最小元素的位置 T tmp; for (i = 0; i size -1; ++i) { k = i; for (j = i+1; j size; ++j) if (a[j] a[k]) k = j; tmp = a[i]; a[i] = a[k]; a[k] = tmp; } } ;堆排序;解决方案;例如,要排序39, 36, 58, 23, 44, 97, 31, 14, 26和77,先将这些元素创建一个堆 ;执行一次deQueue;再执行一次deQueue;堆排序的实现;堆排序程序;percolateDown函数的实现;【Theorem】The average number of comparisons used to heapsort a random permutation of N distinct items is (对N个互异项的随机排列进行堆排序,所用的平均比较次数为): 2N log N = O( N log N ) .;第10章 排序;交换排序;冒泡排序;6;冒泡排序法的实现;冒泡排序的时间性能;Quicksort honored as one of top 10 algorithms of 20th century in science and engineering.;在待排序的序列中选择一个数据元素,以该元素为标准, 将所有数据元素分为两组,???一组的元素均小于或等于标准元素,第二组的数据元素均大于标准元素。第一组的元素放在数组的前面部分,第二组的数据元素放在数组的后面部分,标准元素放在中间。这个位置就是标准元素的最终位置。这称为一趟划分。然后对分成的两组数据重复上述过程,直到所有的元素都在适当的位置为止。 基本的快速排序算法是递归的。具体包括 选择标准元素 如何划分;选择标准元素;如何划分;;快速排序的递归实现;divide函数的实现;快速排序的包裹函数;快速排序的性能分析;最坏情况分析;最好情况分析;平均情况;NT(N) = 2(T(0) + T(1) + T(2) +…+ T(N-1)) + cN2 然后对N-1的情况套用等式 ,得 (N-1)T(N-1) = 2(T(0)+T(1)+T(2)+ … +T(N-2)) + c(N-1)2 两式相减,得 NT(N) – (N-1)T(N-1) = 2T(N-1) + 2cN

文档评论(0)

pandon + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳春市鑫淼网络科技有限公司
IP属地广东
统一社会信用代码/组织机构代码
91441781MA52GF540R

1亿VIP精品文档

相关文档