2、选择排序
选择排序
1、数组和链表

2、代码示例(歌曲播放排序)
1 from prettytable import PrettyTable 2 3 # 根据key获取value 4 def getKeys(musicDict,value): 5 for k,v in musicDict.items(): 6 if v == value: 7 return k,v 8 9 # 寻找当前一轮的最小值 10 def findSmall(musicDict): 11 listValues = list(musicDict.values()) 12 # 每次选取第一个元素为临时最大值 13 maxPlays = listValues[0] 14 for i in range(1,len(listValues)): 15 if maxPlays < listValues[i]: 16 maxPlays = listValues[i] 17 return getKeys(musicDict,maxPlays) 18 19 # 选择排序 20 def selectionSort(musicDict): 21 musicRank = {} 22 for i in range(len(musicDict)): 23 key,value = findSmall(musicDict) 24 musicRank[key] = value 25 musicDict.pop(key) 26 27 return musicRank 28 29 if __name__ == '__main__': 30 musicDict = { 31 "RADIOHEAD": 156, 32 "KISHORE KUMAR":141, 33 "THE BLACK KEYS":35, 34 "NEUTRAL MILK HOTEL":94, 35 "BECK":88, 36 "THE STROKES":61, 37 "WILCO":111 38 } 39 sortDict = selectionSort(musicDict) 40 table = PrettyTable() 41 table.field_names = ["\033[1m歌曲名","播放次数\033[0m"] 42 for k,v in sortDict.items(): 43 table.add_row([k,v]) 44 print(table)
3、总结
计算机内存犹如一大堆抽屉。
需要存储多个元素时,可使用数组或链表。
数组的元素都在一起。
链表的元素是分开的,其中每个元素都存储了下一个元素的地址。
数组的读取速度很快。
链表的插入和删除速度很快。
在同一个数组中,所有元素的类型都必须相同(都为int、 double等)。
4、应用场景
电话簿中的人名
旅行日期
电子邮件(从新到旧)

浙公网安备 33010602011771号