最近在學習排序演算法,就排序演算法中的四大經典排序:氣泡排序、快速排序、選擇排序、插入排序。會出一系列的講解排序演算法的部落格。
今天繼快速排序之後整理一下選擇排序。
選擇排序,就是從一列未排序的陣列中先選出最小(最大)的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在陣列的第二位,第二位原來的數字放在第二小原來的位置~~~~這樣說有些繞了哈,簡單描述就是每次發現乙個最小的、第二小的都讓他們分別和第一位的、第二位的數字換位。如此,一直到最大的歸於最後乙個。
每次選出最小的過程,就是假設第乙個數字是最小的,拿他和第二位的數字比較,選出最小的,再拿這個最小的依次比下去,直到比到最後乙個,敲定最小的。
排序例項
初始關鍵字 [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.介紹 在氣泡排序演算法一篇中,介紹了基本的氣泡排序與幾種改進方法,但無論那幾種方法怎麼改進,都還是基於兩兩交換不斷推進的氣泡排序。氣泡排序演算法最費時的是什麼?一是相鄰元素兩兩比較,二是不滿足排序規則的元素兩兩交換,當然交換要比比較費時多了。兩兩交換的目的是什麼呢?是找出最值 最大值或最小值 但...