你需要知道的九大排序演算法【Python實現】之基數排序

來源:互聯網
上載者:User

標籤:實現   基數排序   python   and   數值   bsp   排序   複雜   style   

八、基數排序
  1. 基本思想:基數排序(radix sort)屬於“分配式排序”(distribution sort),又稱“桶子法”(bucket sort)或bin sort,顧名思義,它是透過索引值的部份資訊,將要排序的元素分配至某些“桶”中,藉以達到排序的作用,基數排序法是屬於穩定性的排序,其時間複雜度為O (nlog(r)m),其中r為所採取的基數,而m為堆數,在某些時候,基數排序法的效率高於其它的穩定性排序法。

  2. 演算法實現:

    #coding: utf-8 #!/usr/bin/python   import randomimport math#隨機產生0~100之間的數值def get_andomNumber(num):      lists=[]      i=0      while i<num:          lists.append(random.randint(0,100))          i+=1    return lists# 頭部需匯入import mathdef radix_sort(lists, radix=10):    k = int(math.ceil(math.log(max(lists), radix)))    bucket = [[] for i in range(radix)]    for i in range(1, k+1):        for j in lists:            bucket[int(j/(radix**(i-1)) % (radix**i))].append(j)        del lists[:]        for z in bucket:            lists += z            del z[:]    return listsa = get_andomNumber(10)print("排序之前:%s" %a)b = radix_sort(a)print("排序之後:%s" %b)

     

你需要知道的九大排序演算法【Python實現】之基數排序

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.