冒泡法:
從前到後不斷對比相鄰的兩數,最大的放到後面
第一次小迴圈後,最大的放到最後
第二次小迴圈後,第二大的放到倒數第二的位置
以此類推
需要的總次數是這個表的長度減一
def
function_bbs
( a_list )
: len_a =
len(a_list)-1
# 未排序的部分
while len_a >=1:
#把最大的數不斷放到最後
for i in
range
( len_a )
:if a_list[i]
> a_list[i+1]
: a_list[i]
, a_list[i+1]
= a_list[i+1]
, a_list[i]
# 對比相鄰的前後兩個數,大的放後面
len_a -=
1import random
a =[random.randint(1,
100)
for i in
range(10
)]# 獲取隨機生成的十個數的列表
function_bbs(a)
print
(a)
選擇排序:
找出最小的數,然後放到第乙個,然後從第二個開始尋找最小的數,接在第乙個後面
# select_sort
deffunc_sls
( lst )
:for i in
range
(len
(lst)-1
):# find the minimal one i to the end
min_idx = i
for j in
range
(i+1
,len
(lst)):
# 找到第i+1個後面最小的數
if lst[j]
< lst[min_idx]
: min_idx = j
lst[i]
,lst[min_idx]
= lst[min_idx]
, lst[i]
#把最小的數與第i+1個交換
import random
lst =
[random.randint(1,
100)
for i in
range(10
)]# 獲取隨機生成的十個數的列表
print
("before sorting: {}"
.format
(lst)
)func_sls( lst )
print
("after sorting:{}"
.format
(lst)
)
Python資料分析 資料排序
在對海量資料進行分析的過程中,可能需要對資料進行排序操作。本文教大家如何在python中對資料框進行一些排序操作。注意 本文採用的資料框date frame python中預設按行索引號進行排序,如果要自定義資料框的排序,可以用sort values函式進行重定義排序。下面對sort values中...
Python資料結構 排序
簡單排序 冒泡 交換 排序 選擇排序 插入排序 希爾排序 複雜排序 快速排序 堆積排序 基數排序 合併排序 合併兩個或多個排好序的線性表 穩定排序與不穩定排序 穩定排序是指一串數字,進過排列以後,同樣大小的元素保持原有的順序。不穩定排序就是說,排序後,同樣大小的元素的順序可能發生改變。例如 排序前有...
python資料結構 排序
氣泡排序 最優時間複雜度 o n 表示遍歷一次發現沒有任何可以交換的元素,排序結束。最壞時間複雜度 o n2 defbubble sort alist for j in range len alist 1,0,1 for i in range j if alist i alist i alist i...