算法的入門(mén)丨最基礎(chǔ)的排序算法,選擇、冒泡、插入

大家在學(xué)習(xí)java的過(guò)程中一定都會(huì)接觸到排序算法,而且排序算法是編程學(xué)習(xí)的過(guò)程中最先接觸的算法。今天給大家?guī)?lái)算法的一次回憶,排序算法入門(mén)的三種基礎(chǔ)算法——選擇排序、冒牌排序和插入排序。

選擇排序

選擇排序,弟中弟,最沒(méi)用的算法,時(shí)間復(fù)雜度非常之高,所以說(shuō)這個(gè)算法是最沒(méi)用的算法。但是這個(gè)算法是給編程學(xué)習(xí)者帶來(lái)思路的,用來(lái)做算法入門(mén)的墊腳石是非常不錯(cuò)的。

排序算法的思路:過(guò)濾整個(gè)數(shù)組,將最小的數(shù)換到第一位,重復(fù)該過(guò)程,直到遍歷數(shù)組,結(jié)束程序。

首先,寫(xiě)一個(gè)循環(huán)遍歷數(shù)組并將數(shù)組中元素打印出來(lái)的方法。命名為print( ); 方法。


數(shù)組需要經(jīng)過(guò)循環(huán)遍歷,并且將每次遍歷的最小的數(shù)(minPos)與第一位進(jìn)行交換。


進(jìn)行元素交換的方法,也可以抽出來(lái)封裝為一個(gè)單獨(dú)的方法(swap)。

運(yùn)行結(jié)果如下:


冒泡排序

冒泡排序是一種比較簡(jiǎn)單的排序算法,它循環(huán)走過(guò)需要排序的元素,依次比較相鄰的兩個(gè)元素,如果順序錯(cuò)誤就交換,直至沒(méi)有元素交換,完成排序。

數(shù)組循環(huán)遍歷打印的方法,以及元素交換的方法如下:


將排序算法中的循環(huán)比較抽象為方法


結(jié)果如下


插入排序

插入式排序?qū)儆趦?nèi)部排序法,是對(duì)于欲排序的元素以插入的方式找尋該元素的適當(dāng)位置,以達(dá)到排序的目的。

具體思路如下:


排序方法設(shè)計(jì):


程序運(yùn)行結(jié)果如下:


小結(jié):

選擇排序、冒泡排序、插入排序,這三種比較簡(jiǎn)單的排序方法只是Java算法中的冰山一角而已,對(duì)于各種其他的排序算法,比如:快速排序、希爾排序、計(jì)數(shù)排序、基數(shù)排序等等。如果將來(lái)你要進(jìn)階大數(shù)據(jù),還有各種回歸算法、長(zhǎng)尾效應(yīng)等著你去理解,簡(jiǎn)直不要太爽的。

希望本文可以給你帶來(lái)簡(jiǎn)單的幫助。



?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容