一,選擇排序法
從第一個(gè)位置開始比較,找出最小的秉宿,和第一個(gè)位置互換疙剑,開始下一輪氯迂。
"""
lt = [3, 5, 2, 1, 8, 4,0,11]
#求出lt的長(zhǎng)度
n = len(lt)
#外層循環(huán)確定比較的輪數(shù),x是下標(biāo)言缤,lt[x]在外層循環(huán)中代表lt中所有元素
for xin range(n-1):# 包含一個(gè)0? 實(shí)際上是N次
#內(nèi)層循環(huán)開始比較
? for yin range(x+1,n):
#lt[x]在for y 循環(huán)中是代表特定的元素嚼蚀,lt [y]代表任意一個(gè)lt任意一個(gè)元素。
? ? ? if lt[x]>lt[y]:
#讓lt[x]和lt列表中每一個(gè)元素比較管挟,找出小的
? ? ? ? lt[x],lt[y]=lt[y],lt[x]
print(lt)
"""
二轿曙,冒泡排序法排序
從左到右,數(shù)組中相鄰的兩個(gè)元素進(jìn)行比較僻孝,將較大的放到后面导帝。
"""
lt = [3, 5, 2, 1, 8, 4]
n= len(lt)
for xin range(n-1):
for yin range(n-1-x):
if lt[y]>lt[y+1]:
lt[y],lt[y+1]=lt[y+1],lt[y]
print(lt)
"""
選擇排序法和冒泡排序法的區(qū)別:
冒泡排序是比較相鄰位置的兩個(gè)數(shù),而選擇排序是按順序比較,找最大值或者最小值;
冒泡排序每一輪比較后奄妨,位置不對(duì)都需要換位置突照,選擇排序每一輪比較都只需要換一次位置;
冒泡排序是通過數(shù)去找位置晚伙,選擇排序是給定位置去找數(shù);
"""
sort()方法
grade = [88,57,98,100,45,66,89,93]
print("原列表",grade)
# 升序
grade.sort()
print("升序",grade)
# 降序
grade.sort(reverse=True)
print("降序",grade)
char = ["Char","ANGEL","Pig","dog","westt"]
char.sort()# 先按照大寫? 再按照小寫排
print(char)
char.sort(key=str.lower)# 大寫轉(zhuǎn)換為小寫
print(char)
# 內(nèi)置 sorted 函數(shù)
grade_as = sorted(grade)
print("升序",grade)
grade_des = sorted(grade,reverse=True)
print("降序",grade_des)# 建立一個(gè)新的副本
print("原序列",grade)# 原序列不變