首頁 >後端開發 >Python教學 >如何用Python寫插入排序演算法?

如何用Python寫插入排序演算法?

WBOY
WBOY原創
2023-09-19 16:07:41935瀏覽

如何用Python寫插入排序演算法?

如何用Python寫插入排序演算法?

插入排序是一種簡單直觀的排序演算法,它的想法是將待排序的陣列分成有序部分和無序部分,每次從無序部分中選擇一個元素插入到有序部分的正確位置。插入排序演算法的實作通常透過多次比較和交換元素來實現,時間複雜度為O(n^2)。

下面我們就來看看用Python語言如何寫插入排序演算法,以及具體的程式碼範例。

def insertion_sort(arr):
    for i in range(1, len(arr)):
        key = arr[i]              # 当前待插入元素
        j = i - 1                 # 有序部分的最后一个元素索引

        # 将比key大的元素都向后移动一位
        while j >= 0 and arr[j] > key:
            arr[j + 1] = arr[j]
            j -= 1

        arr[j + 1] = key           # 将key插入正确位置

    return arr

以上是插入排序演算法的具體實作程式碼。在主函數中,我們需要傳入一個待排序的陣列arr,並將排序後的結果傳回。

在演算法的主要循環中,我們從第二個元素開始,將其作為待插入元素key。然後,我們將key與有序部分的最後一個元素進行比較,將比key大的元素向後移動一位,直到找到key的正確位置。最後,我們將key插入到正確位置。

接下來,我們可以測試一下這個插入排序演算法。

arr = [9, 5, 1, 6, 8, 2]
sorted_arr = insertion_sort(arr)
print(sorted_arr)

輸出結果為:

[1, 2, 5, 6, 8, 9]

可以看到,透過插入排序演算法,我們成功地將輸入的陣列依照升序排列。

總結起來,使用Python編寫插入排序演算法並不複雜。我們只需要理解插入排序的基本思想,然後根據思想實現相應的程式碼。當然,為了讓程式碼更加健壯和通用,我們也可以對邊界情況進行處理,例如空數組或只有一個元素的數組。

希望本文能對您理解並掌握插入排序演算法有所幫助!

以上是如何用Python寫插入排序演算法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn