瑞客论坛恋上数据结构与算法第二季带24集_第1页
瑞客论坛恋上数据结构与算法第二季带24集_第2页
瑞客论坛恋上数据结构与算法第二季带24集_第3页
瑞客论坛恋上数据结构与算法第二季带24集_第4页
瑞客论坛恋上数据结构与算法第二季带24集_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

@M了个

实 教育

排序后:1,2,3,4,5,6,7,8,9(升序)或者9,8,7,6,5,4,3,2,1(降序冒泡排序(Bubble✔✔选择排序(Selection✔❌插入排序(Insertion✔✔归并排序(Merge❌✔快速排序(Quick✔❌排序(SO(n4/3)~✔❌堆排序(Heap✔❌计数排序(CountingO(n+O(n+O(n+O(n+❌✔基数排序(RadixO(d∗(n+O(d∗(n+O(d∗(n+O(n+❌✔桶排序(BucketO(n+O(n+O(n+O(n+❌✔ 冒泡排序(Bubble执行流程(本课程统一以升序为例子9最后次交换的位置是排序前:5, 3𝑎,4,7,稳定的排序: 不稳定的排序:1,3𝑏,

5,4, 原地算法(In-place不依赖额外的资源或者依赖少数的 空间复杂度为𝑂(1)In-

选择排序(Selection

堆排序(Heap01012345①对序列进行原地建堆01201234501234501次siftDown012345012345012345012345 插入排序(Insertion插入排序非常类似 牌的排2

2,3,8,6,1>2,1>3,1>8,18,66,1>,共59898765432898976543278978965432678678954325656789432454567893234567892甚至速度比34567892232345678901234012345012345012345二分搜索(Binary00123456789 0123456789beginendv,midbegin+endvmbeginmidv>mmid1endv==m≤m≥v>v<v>mid+≤≥搜索 搜0123012345672468 2468456721 begin==end==1v的插入过程中,可以先二分搜索出合适的插入位置,然后再将元素v0123456724888要求二分搜索返回的插入位置:第1vv5,v1,v15,v8,返回beginendv,midbegin+endvmbeginmidv≥mmid1end≤m≥v≥v<v≥mid+≤≥

0120123456724888012345672488801230123248 82020begin==end==

begin==end==

4884888012345672468 7begin==end==

begin==end==012345672488845678 85begin==end==归并排序(Merge8765432 (John8765432345625634562567812342②不断地将2

21436521436512345678divide836 836 83 6836383636 83636 83 6836368836368836368mergemerge2 836merge1组序列备份出来,比如[begin 8368

li==0,le==mid–ri==mid,re==

83 3833868338683386 83 833668336883368merge

63 36336863368633686336863368merge

8 8883683368336 8 83636 8 83686 8 8368mergeT =2∗T +T =Tn/n=Tn/2/(n/2)+令S =TnS =S =S +O(1)=ST =n∗S =

+O(2)=S +O(3)=S +O =S +O(logn)= 、平均时间复杂度都是O(nlogn),属于稳定排On/2n/2用于临时存放左侧数组,logn

=复杂Tn=Tn/2+Tn=Tn−1+Tn=Tn/2+Tn=2∗Tn/2+Tn=2∗Tn/2+Tn=Tn−1+OTn=2∗Tn−1+O2nTn=2∗Tn−1+O2n .om/problems/merge-sorted- 快速排序(Quick1960年 ·霍尔(CharlesAntonyRichardHoare,缩写为C.A.R.Hoare)提昵称 686829469876987②利用pivot2213546213546789pivot的元素放在pivot后面(右侧123123456789

begin

249575424972495754297552495754297524975429752497542977171234566123457T =2∗T +612345751234675123467T =Tn− +O =4123567为了降 4123567313124567226767

begin

66 轴点元素可以将序列分割成2个均匀的子序思考:cmp 导致出 时间复杂度

1959年 (Donald 排序把序列看作是一个矩阵𝑚𝑚从某个整数逐渐减为𝑚为1因此 排序也被称为递减增量排序(DiminishingIncrement矩阵的列数取决于步长序列(step 列 列 列、列、列进行排本人给出的步长序列是𝑛/2𝑘,比如𝑛为16时,步长序列是{1,2,4,1分成81分成4

分成2

432936365879365879分成1

21436587921122112456789 假设有11个元素,步长序列是{1,2,9876543219876987654321colrow行,步长(总列数)那么这个元素在数组中的索引是colrow*9202+0*5=4212+1*5=本人给出的步长序列 情况时间复杂度是目前已知的最好的步长序列 情况时间复杂度是O(n4/3),1986年由RobertSedgewick提计数排序(Counting 平均时间复杂度目前最低是它们是典型的用空间换时间,在某些时候,平均时间复杂度可以比O 更计数排序 思7358674501234567811212134556778737358674534567801234511212 124578

假设arrayarraykcountsk–arraykcounts[k–min]–p代表着是倒数第几个8counts[83117counts[73]–1 34556778counts[73]–2,735867735867457358674534567801234512457834567801234512357801234567012345675735867735867457358674534567801234511246734567801234501246701234567455678012345673455678735867453456780123450124570123456734556778 平均时间复杂度:O(n+空间复杂度:O(nk [age=-13, [age=-13, [age=12, [age=17, [age=20, [age=20,基数排序(Radix 68686868思考:如果先 最好 、平均时间复杂度:O(d∗(n+k)),d是最大值的位数,k是进制。属于稳定排空间复杂度:O(nk),k012345670123456789860123456789686801234567896868686868O(kn+k)d是最大值的位数,k

桶排序(Bucket①

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论