Day22-"气泡排序法"

我们一般会将需要排序的资料存放在阵列中,因此今天要介绍气泡排序演算法的目标就阵列资料的结构。

气泡排序法是一些排序法中较为简单容易的排序方法,因此他在效率上表现也较为普通。所谓的气泡排序法就是将相邻的两资料互相比较,比较後若发现後者比前者小,就将两着互换,以此类推直到全部排序完成。接下来看这个例子{34,27,56,22,85}来看这个阵列总共需要更换几次。

第一次比较,将34跟27做比较,发现27较小因此将27和34互换得到{27,34,56,22,85}

第二次比较,将34跟56做比较,发现34比较小因此无需做更改,得到{27,34,56,22,85}

第三次比较,将56跟22做比较,发现22较小因此将22和56互换得到{27,34,22,56,85}

第四次比较,将56跟85做比较,发现56比较小因此无需做更改,得到{27,34,22,56,85},此时已将85排好,他是最大的一个。

第五次比较,将27跟34做比较,发现27比较小因此无需做更改,得到{27,34,22,56,85}

第六次比较,将34跟22做比较,发现22较小因此将22和34互换得到{27,22,34,56,85}

第七次比较,将34跟56做比较,发现34比较小因此无需做更改,得到{27,22,34,56,85},此时56也完成排序

第八次比较,将27跟22做比较,发现22较小因此将22和27互换得到{22,27,34,56,85}

第九次比较,将27跟34做比较,发现27比较小因此无需做更改,得到{22,27,34,56,85},此时34也完成排序

第十次比较,将22跟27做比较,发现22比较小因此无需做更改,得到{22,27,34,56,85},最後将22与27比较完就是所有排序了。

我们会发现5笔资料排序时,总共会有4个回合,每个回合会排序完该回合的最大值,由上述例子得知,我们四个回合分别比较了10次(4+3+2+1)。由此我们可以知道N笔资料需要有(N-1)次,以此类推知道第二笔资料为(N-2)直到最後一笔为1,因此我们可以得知最多需要N(N-1)/2次比较。

/images/emoticon/emoticon29.gif

Day22就到这啦BYE~


<<:  Day.20 「初步认识 this,中央工厂式的自订物件~」 —— JavaSript 构造函式

>>:  D28-(9/28)-大台北(9908)-稳定的民生必需品,瓦斯

【Day 25】C String

接着我们要说说 C String!C string 是字元阵列,通常会使用 pointer 来做应用...

LIFF APP 串接发送认证码 API

今天要结合前两天的成果,完成 LIFF APP 串接 发送认证码 API 的功能 目标 要完成的功能...

#14 Automation (2)

在写爬虫程序的时候,我们需要先理解一下目标网站的结构。 做自动化时,我们也须了解手动执行时的步骤。 ...

33岁转职者的前端笔记-DAY 18 练习写一个自我介绍产生器

变数基本概念 常数:const 不可重新赋予新值 变数:let 可重新赋予新值 建立常数a并储存(或...

[DAY20]图片旋转木马

TemplateSendMessage - ImageCarouselTemplate image_...