對於選擇排序,它的時間複雜度為o(n^2),空間複雜度為o(1),它的具體思想為:對於需要進行排序的陣列a,我們在每一趟排序中找到陣列中最小或者最大的元素,記其為a[j],然後將其與每一趟排序時未排好序部分的第乙個元素進行交換,以此類推,直到陣列a中元素全部有序排列。在這裡,在每一趟排序查詢陣列中最小或最大元素時,我們在將元素進行依次比較時,只需要將較小或較大元素的索引記下來,直到元素全部比較完成後,記下來的索引就是陣列中最小或最大元素的索引。其具體**如下:
def
selectsort
(a):
length_a=len(a)
for i in range(0,length_a):
minindex=i
for j in range(i+1,length_a):
if a[j]return a
... prompt'''
在**中,我們將陣列a傳入函式中,計算出陣列的長度,為了將陣列中的所有元素按從小到大的順序排列,需要在每趟排序中將陣列中最小的元素依次找出來,具體為:第一趟,對陣列中的全部元素進行比較,找到其中的最小元素的索引,記為minindex,之後將a[minindex]與第乙個元素進行交換,這樣陣列中最小元素就被放在了陣列的第一位上;第二趟,在除去第一趟找到的最小元素後剩餘的元素中找到最小的元素,然後將其放在陣列的第二位上;後面每一趟都是和第二趟一樣,直到陣列中所有元素都從小到大排好序。 資料結構 排序演算法之選擇排序
一 選擇排序 最差的排序演算法 在選擇排序中,假定我們需要公升序,因此在每次排序中,需要找到最大的元素,將其放在最後,在每一次的迴圈中,都是將最大的元素放在最後,因此對於資料較多的陣列,迴圈的次數將與陣列中元素的個數一致,因此,在對於這種陣列進行排序時,將十分的浪費時間。有關選擇排序的思路,如下所示...
資料結構排序演算法之選擇排序法
選擇排序法 是對定位比較交換法 也就是氣泡排序法 的一種改進。選擇排序的基本思想是 每一趟在n i 1 i 1,2,n 1 個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。void choosesort int a,int n 交換最小值與第i個元素 tmp a indexofminnum a...
資料結構 排序 選擇排序演算法
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...