欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python算法學習之計數排序實例

 更新時間:2013年12月18日 10:11:22   作者:  
本代碼介紹了python算法學習中的計數排序實例,代碼大家參考使用吧

python算法學習之計數排序實例

復制代碼 代碼如下:

# -*- coding: utf-8 -*-

def _counting_sort(A, B, k):
    """計數排序,偽碼如下:
    COUNTING-SORT(A, B, k)
    1  for i ← 0 to k // 初始化存儲區(qū)的值
    2    do C[i] ← 0
    3  for j ← 1 to length[A] // 為各值計數
    4    do C[A[j]] ← C[A[j]] + 1
    5  ▷ C[i]包含等于i的元素個數
    6  for i ← 1 to k // 求計數和,確定<=各值的元素數
    7    do C[i] ← C[i] + C[i-1]
    8  ▷ C[i]包含小于或等于i的元素個數
    9  for j ← length[A] downto 1
    10   do B[C[A[j]]] ← A[j] // 將A[j]值放到對應位置
    11      C[A[j]] ← C[A[j]] - 1 // 避免元素相同時覆蓋同一位置

    T(n) = θ(n)

    Args:
        A (Sequence): 原數組
        B (Sequence): 結果數組
        k (int): 值上限,假定了所有元素介于[0,k]
    """
    len_c = k + 1
    C = [0] * len_c
    for a in A:
        C[a] = C[a] + 1
    for i in range(1, len_c):
        C[i] = C[i] + C[i-1]
    for a in A[::-1]:
        B[C[a]-1] = a
        C[a] = C[a] - 1

def counting_sort(A):
    """假定A數組所有元素都介于[0,len(A)-1]"""
    B = [0] * len(A)
    _counting_sort(A, B, len(A) - 1)
    return B

if __name__ == '__main__':
    import random, timeit

    items = range(10000)
    random.shuffle(items)

    def test_sorted():
        print(items)
        sorted_items = sorted(items)
        print(sorted_items)

    def test_counting_sort():
        print(items)
        sorted_items = counting_sort(items)
        print(sorted_items)

    test_methods = [test_sorted, test_counting_sort]
    for test in test_methods:
        name = test.__name__ # test.func_name
        t = timeit.Timer(name + '()', 'from __main__ import ' + name)
        print(name + ' takes time : %f' % t.timeit(1))

相關文章

  • Python實現網絡通信的HTTP請求Socket編程Web爬蟲方法探索

    Python實現網絡通信的HTTP請求Socket編程Web爬蟲方法探索

    隨著互聯網的不斷發(fā)展,Python作為一門多用途的編程語言,提供了強大的工具和庫來進行網絡連接和通信,本文將深入探討Python中連接網絡的方法,包括HTTP請求、Socket編程、Web爬蟲和REST?API的使用
    2024-01-01
  • python函數局部變量用法實例分析

    python函數局部變量用法實例分析

    這篇文章主要介紹了python函數局部變量用法,較為詳細的分析了Python局部變量的原理與使用技巧,并對比分析了局部變量與global全局變量的用法區(qū)別,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • selenium跳過webdriver檢測并模擬登錄淘寶

    selenium跳過webdriver檢測并模擬登錄淘寶

    這篇文章主要介紹了selenium跳過webdriver檢測并模擬登錄淘寶,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • Django中使用第三方登錄的示例代碼

    Django中使用第三方登錄的示例代碼

    這篇文章主要介紹了Django中使用第三方登錄的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • pycharm調試時顯示圖片問題的解決

    pycharm調試時顯示圖片問題的解決

    這篇文章主要介紹了pycharm調試時顯示圖片問題的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 淺談Python數據類型判斷及列表腳本操作

    淺談Python數據類型判斷及列表腳本操作

    下面小編就為大家?guī)硪黄獪\談Python數據類型判斷及列表腳本操作。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • python獲取外網IP并發(fā)郵件的實現方法

    python獲取外網IP并發(fā)郵件的實現方法

    下面小編就為大家?guī)硪黄猵ython獲取外網IP并發(fā)郵件的實現方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Windows下Sqlmap環(huán)境安裝教程詳解

    Windows下Sqlmap環(huán)境安裝教程詳解

    這篇文章主要介紹了Windows下Sqlmap環(huán)境安裝,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • YOLOv5改進之添加SE注意力機制的詳細過程

    YOLOv5改進之添加SE注意力機制的詳細過程

    作為當前先進的深度學習目標檢測算法YOLOv5,已經集合了大量的trick,但是還是有提高和改進的空間,針對具體應用場景下的檢測難點,可以不同的改進方法,下面這篇文章主要給大家介紹了關于YOLOv5改進之添加SE注意力機制的相關資料,需要的朋友可以參考下
    2022-08-08
  • Pandas數據清洗和預處理的實現示例

    Pandas數據清洗和預處理的實現示例

    本文主要介紹了Pandas數據清洗和預處理的實現示例,包括處理缺失值、異常值,進行數據轉換和規(guī)范化,以及處理重復數據等操作,感興趣的可以了解一下
    2024-01-01

最新評論