日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

桶排序+基数排序+计数排序

發布時間:2023/12/18 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 桶排序+基数排序+计数排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

桶排序

?

1.原理:

    將需要排序的數組分在有限的桶里

    然后對每個桶中的數分別排序

(對每個桶的操作:1.別的排序算法  2.以遞歸的方式繼續使用桶排序)

?

2.過程:

  • 假設待排序的一組數統一的分布在一個范圍中,并將這一范圍劃分成幾個子范圍,也就是桶
  • 將待排序的一組數,分檔規入這些子桶,并將桶中的數據進行排序
  • 將各個桶中的數據有序的合并起來
  • ?

    3.舉個例子:

        設有數組 array = [29, 25, 3, 49, 9, 37, 21, 43]

        那么數組中最大數為 49

        先設置 5 個桶

        那么每個桶可存放數的范圍為:0~9,10~19,20~29,30~39,40~49

        然后分別將這些數放人自己所屬的桶

        然后,分別對每個桶里面的數進行排序

        或者在將數放入桶的同時用插入排序進行排序

        最后,將各個桶中的數據有序的合并起來

    ?

    基數排序:

    ?

    1.原理:

        桶排序的拓展(我沒看出來這兩者的聯系喵喵喵?

        將整數按位數切割成不同的數字,然后按每個位數分別比較。

    ?

    2.過程:

        首先,將要比較的數值統一成同樣的數位長度(數位少的在前面補0)

        然后,從最低位開始,依次進行一次排序

        

    3.再舉個栗子(假裝圖文并茂嘿嘿嘿...

      通過基數排序對數組{53, 3, 542, 748, 14, 214, 154, 63, 616},它的示意圖如下

    ?

    ?

    計數排序:

    ?

    1.原理:

        把需要排序的數組 分到有限的桶里

    ?

    2.過程:

        假設有一個a數組,其中裝著要排序的數列

        a數列的數據范圍為[x,y)

        創建一個大小為y的桶數組r

        將容量為y的桶數組中的每一個單元都看作一個獨立的"桶"

        遍歷每個數組a

        a的值為r數組的下標

        并將該桶存的數值+1

    ?

    3.又舉個栗子:

       a[3] = 5

       r[5]++;

    ?

    假設a={8,2,3,4,3,6,6,3,9}, max=10。

    此時,將數組a的所有數據都放到需要為0-9的桶中。如下圖:

    ?

    ?

    轉載于:https://www.cnblogs.com/darlingroot/p/10786129.html

    總結

    以上是生活随笔為你收集整理的桶排序+基数排序+计数排序的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。