图解算法学习笔记(二): 选择排序
生活随笔
收集整理的這篇文章主要介紹了
图解算法学习笔记(二): 选择排序
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
1)數(shù)組和鏈表:
2)選擇排序算法:
3)小結
本章內容:
- ?? ?兩種基本數(shù)據(jù)結構:數(shù)組和鏈表;
- ? ? 選擇排序算法;
1)數(shù)組和鏈表:
數(shù)組是連續(xù)的內存單元,鏈表可以不連續(xù);
鏈表存儲單元如圖所示,每一個元素都含有下一個元素的地址,就像玩藏寶地圖一樣,每次只需要找到下一個元素的位置即可訪問。
? ??
2)選擇排序算法:
例子:假設你的計算機存儲了很多樂曲。對于每個樂隊,你都記錄了其作品被播放的次數(shù),如果你想對于歌曲播放次數(shù)按從多到少進行排序。你可以遍歷播放列表,找出播放次數(shù)最多的樂隊,并將該樂隊添加到一個新列表;重復操作,得到一個有序列表,運行時間為O(nxn)。
? ??要找出播放次數(shù)最多的樂隊,必須檢查列表中的每個元素。正如你剛才看到的,這需要的時間為O(n)。因此對于這種時間為O(n)的操作,你需要執(zhí)行n次。
排序算法很有用,你可以對電話簿中的人人名、電子郵件(從新到舊)進行排序。
3)小結
計算機內存猶如一大堆抽屜;
需要存儲多個元素時,可使用數(shù)組或鏈表;
數(shù)組的元素都在一起,在內存中是連續(xù)的;
鏈表的元素都是分開的,其中每個元素都存儲下一個元素的地址;
數(shù)組的讀取速度更快;
鏈表的插入和刪除速度很快;
在同一個數(shù)組中,所有元素的類型必須相同;代碼:
? Python實現(xiàn)選擇排序的源碼??
#查找數(shù)組中最小元素def findSmallest(arr):smallest = arr[0]smallest_index = 0for i in range(1, len(arr)):if arr[i] < smallest:smallest = arr[i]smallest_index = ireturn smallest_index#選擇排序算法def selectionSort(arr):newArr = []for i in range(len(arr)):smallest = findSmallest(arr)newArr.append(arr.pop(smallest))return newArr?
總結
以上是生活随笔為你收集整理的图解算法学习笔记(二): 选择排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 明星象脚烂了还要表演?动物园回应:果扎身
- 下一篇: Apollo进阶课程㉔丨Apollo 规