選擇排序的概念:
它是一種簡(jiǎn)單直觀的排序算法。它工作原理如下。首先在未排序序列(右邊無序)中找到最小(或最大)元素,置換至序列的起始位置(左邊有序),然后在從剩余部分未排序的元素中繼續(xù)尋找最小(或最大)元素,然后放到已排序的末尾、以此類推知道所有元素均排序完畢。
選擇排序的優(yōu)點(diǎn)與數(shù)據(jù)移動(dòng)有關(guān)。如果某個(gè)元素位于正確的最終位置上,則它不會(huì)移動(dòng)。選擇排序每次交換一次元素,他們當(dāng)中至少有一個(gè)將被移動(dòng)到其最終的位置上,因此對(duì)N個(gè)元素的表進(jìn)行排序總共進(jìn)行最多N-1次交換。在所有的完全依靠交換去移動(dòng)元素的排序方法中,選擇排序?qū)儆诜浅:玫囊环N。
選擇排序的時(shí)間復(fù)雜度:
最優(yōu)時(shí)間復(fù)雜度:O(n2)
最壞時(shí)間復(fù)雜度:O(n2)
穩(wěn)定性:不穩(wěn)定(以升序排序,每次選擇最大的情況)