前面幾篇博客我們已經(jīng)陸陸續(xù)續(xù)的為大家介紹了7種排序方式,今天博客的主題依然與排序算法相關(guān)。今天這篇博客就來(lái)聊聊基數(shù)排序,基數(shù)排序算法是不穩(wěn)定的排序算法,在排序數(shù)字較小的情況下,基數(shù)排序算法的效率還是比較高的。今天就來(lái)聊一下基數(shù)排序算法的原理以及代碼的具體實(shí)現(xiàn)。
一、基數(shù)排序算法示意圖
下方的基數(shù)排序算法的實(shí)現(xiàn)是利用“桶”來(lái)實(shí)現(xiàn)的,首先我們創(chuàng)建10個(gè)桶,然后按照基數(shù)入桶,基數(shù)的取值是從數(shù)字的低位到高位以此取值。我們還是以[62, 88, 58, 47, 62, 35, 73, 51, 99, 37, 93]這個(gè)序列為例,使用基數(shù)排序的方式對(duì)該序列進(jìn)行升序排列。
下方截圖就是上述序列基數(shù)排序的具體過(guò)程,在排序之前我們先得創(chuàng)建10個(gè)空桶,并進(jìn)行0-9的編號(hào)。這10個(gè)空桶會(huì)在基數(shù)排序的過(guò)程中存儲(chǔ)我們要排序的數(shù)值。下方就是對(duì)基數(shù)排序步驟的詳細(xì)介紹:
(1)、以無(wú)序序列數(shù)值的個(gè)數(shù)為基數(shù),將無(wú)序序列中的值進(jìn)入到基數(shù)對(duì)應(yīng)的桶中。