golang 排序 選擇排序的三種語言實現

2021-10-11 08:52:30 字數 920 閱讀 6270

思路:遍歷陣列,每一趟選擇最小的數(指標j),和前面(指標i)交換

templatevoid selectionsort(t arr, int n)      swap(arr[i], arr[minindex]);   }}對物件進行排序:struct student {string name;int score;bool operator
#實現方式一:def selectionsort(lst):    for i in range(len(lst)):        min_index = i        for j in range(i + 1, len(lst)):            if lst[j] < lst[min_index]:                min_index = j        lst[i], lst[min_index] = lst[min_index], lst[i] #實現方式二:def selectionsort2(lst):    for i in range(len(lst)):        min_index = lst.index(min(lst[i:]))        lst[i], lst[min_index] = lst[min_index], lst[i]#對物件進行排序:class student:    def __init__(self,name,score):        self.name=name        self.score=score    def __lt__(self, other):        return self.score
選擇排序為不穩定排序(如[6, 8, 6, 2],第一遍迴圈,第乙個6和2交換位置),時間複雜度為 o(n^2)

冒泡 選擇 插入三種排序

工作閒下來了,偶來學習下排序演算法的思想,適當的緩解下壓力,換個思考方式也很不錯的。氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為...

三種排序演算法(氣泡排序,選擇排序,插入排序)

1.氣泡排序 流程 在乙個陣列中,第1個數與第2個數比,第2個數與第3個數比,第3數與第4個數比,若前面比後面大,則將兩個位置的數互換。因此,每次會將最大值推向最右邊,即座標索引為n 1處。當n 1處的元素敲定後,則繼續從0位置處推,推至n 2處,如此反覆。n n 1 n 2.時間複雜度為o n2 ...

氣泡排序 選擇排序 插入排序三種基礎排序的比較

排序在計算機中是很基礎並且是十分重要的問題,但由於排序有可能非常耗時,所以它已經成為了電腦科學中廣泛研究的課題。對此僅僅討論一些簡單的排序演算法,氣泡排序,選擇排序,插入排序。對此只是自己學習的乙個記錄。例如 有一群公升高不盡相同的人站成一排,我們想要通過某種方法,將他們排成一列公升高有序的隊伍 例...