選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法(比如序列[5, 5, 3]第一次就將第乙個[5]與[3]交換,導致第乙個5挪動到第二個5後面)。
選擇排序的思想通俗點解釋就是:
對比陣列中前乙個元素跟後乙個元素的大小,如果後面的元素比前面的元素小則用乙個變數k來記住他的位置,接著第二次比較,前面「後乙個元素」現變成了「前乙個元素」,繼續跟他的「後乙個元素」進行比較如果後面的元素比他要小則用變數k記住它在陣列中的位置(下標),等到迴圈結束的時候,我們應該找到了最小的那個數的下標了,然後進行判斷,如果這個元素的下標不是第乙個元素的下標,就讓第乙個元素跟他交換一下值,這樣就找到整個陣列中最小的數了。然後找到陣列中第二小的數,讓他跟陣列中第二個元素交換一下值,以此類推。
至於選擇排序的穩定性,按照一開始舉的例子,[5,5,3]在交換後第乙個5會在第二個5後面了,所以他是不穩定的。
下面貼上**:
void selectsort(int* a, int n)
} if (min != j)}}
八大排序演算法之選擇排序
created by leixingbang on 2017 9 25.選擇排序主要思想是將陣列拆分為兩部分,一部分是已經排序的新陣列和剩下的尚未排序的子陣列 每次選擇,都從尚未排序的子陣列中找出最小的數字,新增到已經排序的新陣列分。定理 對於長度為n的選擇排序需要 1 n n 2次比較 n 1,n...
八大排序演算法之選擇排序
思路 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢 想法 選擇排序實際上是乙個雙指標問題,...
八大排序之選擇排序
個人部落格 建議先看排序綜述,傳送門 資料結構與演算法系列之一 八大排序綜述。選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末...