排序演算法 排序演算法之選擇排序

2022-01-24 12:51:15 字數 1145 閱讀 1274

最近在學習排序演算法,就排序演算法中的四大經典排序:氣泡排序、快速排序、選擇排序、插入排序。會出一系列的講解排序演算法的部落格。

今天繼快速排序之後整理一下選擇排序。

選擇排序,就是從一列未排序的陣列中先選出最小(最大)的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在陣列的第二位,第二位原來的數字放在第二小原來的位置~~~~這樣說有些繞了哈,簡單描述就是每次發現乙個最小的、第二小的都讓他們分別和第一位的、第二位的數字換位。如此,一直到最大的歸於最後乙個。

每次選出最小的過程,就是假設第乙個數字是最小的,拿他和第二位的數字比較,選出最小的,再拿這個最小的依次比下去,直到比到最後乙個,敲定最小的。

排序例項

初始關鍵字 [49 38 65 97 76 13 27 49]

第一趟排序後 13 [38 65 97 76 49 27 49]

第二趟排序後 13 27 [65 97 76 49 38 49]

第三趟排序後 13 27 38 [97 76 49 65 49]

第四趟排序後 13 27 38 49 [76 97 65 49 ]

第五趟排序後 13 27 38 49 49 [97 65 76]

第六趟排序後 13 27 38 49 49 65 [97 76]

第七趟排序後 13 27 38 49 49 65 76 [97]

最後排序結果 13 27 38 49 49 65 76 97

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

xuanze

; selectsort(intarray);

foreach (int item in

intarray)

console.readkey();

}static

void selectsort(int

array)

}if (minindex!=i)//

最小值的下標不是原來假定的值下標,則替換}}

}}

執行結果:

排序演算法之選擇排序

選擇排序 在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換.第n 1趟遍歷剩下的2個資料,找出其中最小的數值與第n 1個元素交換,至此選擇排序完成。平均時間複雜度 o n2 空間複雜度 o 1 用於...

排序演算法之選擇排序

一 簡單選擇排序 1 基本思想 在要排序的一組數中,選出最小 或者最大 的乙個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後乙個數 比較為止。簡單選擇排序的示例 2 操作方法 第一趟,從n 個記錄中...

排序演算法之選擇排序

1.介紹 在氣泡排序演算法一篇中,介紹了基本的氣泡排序與幾種改進方法,但無論那幾種方法怎麼改進,都還是基於兩兩交換不斷推進的氣泡排序。氣泡排序演算法最費時的是什麼?一是相鄰元素兩兩比較,二是不滿足排序規則的元素兩兩交換,當然交換要比比較費時多了。兩兩交換的目的是什麼呢?是找出最值 最大值或最小值 但...