一、Python List排序方法簡介
在編寫Python程序時,經常會用到排序方法。Python的列表(List)數據類型中提供了多種排序方法,可用於根據不同的需求對列表進行排序。
本文將詳細介紹Python List排序方法,包括常見的排序算法及其實現方式,以及如何使用Python內置的排序函數和關鍵字來進行排序。
二、Python內置排序函數
Python內置了多種排序函數,方便開發者快速對列表進行排序。
1. sort()函數
sort()方法可用於對Python中的列表進行排序。該方法會改變原始列表,按照升序進行排序。
<!--HTML實體化-->
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
lst.sort()
print(lst) # 輸出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
2. sorted()函數
Python內置的sorted()函數可用於對列表進行排序,並返回排序後的新列表。該函數可接受多個參數,其中key參數用於指定排序函數。
<!--HTML實體化-->
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_lst = sorted(lst)
print(new_lst) # 輸出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# 按照元素的絕對值大小進行排序
lst = [3, -1, 4, -1, 5, -9, 2, 6, 5, 3, -5]
new_lst = sorted(lst, key=abs)
print(new_lst) # 輸出 [-1, -1, 2, 3, 3, 4, -5, 5, 5, 6, -9]
3. reversed()函數
reversed()函數可用於對列表進行反向排序。
<!--HTML實體化-->
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_lst = sorted(lst, reverse=True)
print(new_lst) # 輸出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
三、Python List排序算法
Python List排序算法是實現Python內置排序函數的基礎。在此,我們將介紹幾種常見的排序算法及其在Python中的實現方式。
1. 冒泡排序
冒泡排序是一種簡單的排序算法,它通過比較相鄰元素的大小來進行排序。
<!--HTML實體化-->
def bubble_sort(lst):
n = len(lst)
for i in range(n):
for j in range(n - i - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
return lst
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(bubble_sort(lst))
2. 插入排序
插入排序是一種簡單的排序算法,它將一個元素插入到已經排好序的元素中。
<!--HTML實體化-->
def insertion_sort(lst):
n = len(lst)
for i in range(1, n):
j = i
while j > 0 and lst[j - 1] > lst[j]:
lst[j - 1], lst[j] = lst[j], lst[j - 1]
j -= 1
return lst
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(insertion_sort(lst))
3. 選擇排序
選擇排序是一種簡單的排序算法,它通過每次選擇最小元素來進行排序。
<!--HTML實體化-->
def selection_sort(lst):
n = len(lst)
for i in range(n):
min_index = i
for j in range(i + 1, n):
if lst[j] < lst[min_index]:
min_index = j
lst[i], lst[min_index] = lst[min_index], lst[i]
return lst
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(selection_sort(lst))
四、排序算法的時間複雜度
排序算法的時間複雜度指的是執行完算法所需要的時間。Python List的排序算法的時間複雜度如下:
算法名稱 | 平均時間複雜度 | 最壞時間複雜度 | 空間複雜度 |
---|---|---|---|
冒泡排序 | O(n^2) | O(n^2) | O(1) |
插入排序 | O(n^2) | O(n^2) | O(1) |
選擇排序 | O(n^2) | O(n^2) | O(1) |
快速排序 | O(nlogn) | O(n^2) | O(logn) |
歸併排序 | O(nlogn) | O(nlogn) | O(n) |
五、小結
Python List的排序方法既包括內置的排序函數,也可以自己編寫排序算法。對於簡單的排序需求,可以使用內置排序函數,對於複雜的排序需求,可以根據具體情況選擇不同的排序算法。
開發者需要根據數據量、時間、空間等方面的需求,選擇合適的排序算法來快速、高效地排序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/288679.html