氣泡排序和sort,sorted排序函式

2022-09-23 03:22:04 字數 1579 閱讀 6658

氣泡排序:
假設對列表a=[6,3,7,2,8,5]中的元素進行從小到大排序:

# 輪數 元素個數 比較次數

# 1 6 5

# 2 5 4

# 3 4 3

# 4 3 2

# 5 2 1

列表有n個元素,則應比較n-1輪,第一輪比較n-1次,第一次將列表的第一個元素和第二個元素相比,如果第一個大於第二個,則兩個元素交換位置,將較大的那個排在後面。第二次將第二個元素和第三個元素相比,以此類推,第一輪結束後最大的那個數排到了最後,可以不管了,第二輪只需要比較n-1個數,共比較n-2次,以此類推。故只需寫兩個for迴圈,第一個for控制輪數,第二個for控制每輪的次數即可。

a=[6,3,7,2,8,5]

for i in range(len(a)-1): # 輪數

for j in range(len(a)-1-i): # 每輪次數

if a[j]>a[j+1]:

a[j],a[j+1] =a[j+1],a[j]

print(a)

# [2,3,5,6,7,8]

# ***************************************sort和sorted排序函式的用法************************************

# lis = ['this','is','a','beautiful','girl']

# lis_1 = [i.lower() for i in lis]

# lis_1.sort(reverse = false) # 無返回值,正序

# lis_2 = sorted(lis_1,key=len,reverse = true) # 有返回值,生成新的列表,按長度倒序排列

# print(lis_1)

# print(lis_2)

# 列印出分數最高的學科

# lis=

# a=

# a.keys()

# out[3]: dict_keys(['語文', '數學', '英語'])

# b=a.keys()

#b[1] # dict_keys 不支援index,但是支援遍歷 for i in b:

#max(a.values()) # 求出最大value

# for i in a.keys():

# if a[i]==max(a.values()):

# print('最高分學科是%s,分數是%s'%(i,a[i]))

# print(type(max(a.keys())))

# a=

# print(sorted(a,key=lambda x:a[x]))

# print(sorted(a,key=lambda x:x[0]))

# ['b', 'aa', 'c']

# ['aa', 'b', 'c']

sort排序

1 t 指定排序時所用的欄位分隔字元 2 n 依照數值的大小排序 3 r 以相反的順序來排序 4 f 排序時,將小寫字母視為大寫字母 5 d...

冒泡法排序

冒泡法排序的基本思路 1 拿陣列的第一個元素inttest 0 的值迴圈與剩餘的元素比較,把最大的值與inttest 0 交換值,然後剩餘的...

sort排序以及隨機排序

今天來說一下陣列中比較強大的排序方法sort。 sort 將在原陣列上對陣列元素進行排序,即排序時不建立新的陣列副本。 如果呼叫方法sort 時沒有使用引數,將按字母順序 更為精確地說,是按照字元編碼的順序 對陣列中的元素進行排序。要實現這一點,首先應把陣列的元素都轉換成字串 如果有必要的話 ,以...