簡介
選擇排序是一種思想很簡單的排序方法,其原理就是在第n輪選擇第n小的元素與當前元素交換,這樣第n小的元素就在數組的第n個位置了。
比如在第一輪中,把第0個元素設置為最小的元素,并把它跟后面的每一個元素比較,得到最小的元素,將最小的元素和第一個元素進行交換,以此類推
復雜度
時間復雜度
選擇排序的時間復雜度為O(n2),因為不管情況怎樣都是比較(n-1)+(n-2)+…+3+2+1=n(n-1)/2次
空間復雜度
選擇排序不需要分配額外的空間,故它的空間復雜度為O(1)
穩定性
選擇排序是一種不穩定的算法,比如5 8 5 3 2 9,經過第一輪交換之后兩個5的位置順序就不一樣了,穩定性被破壞,所以它不是一種穩定的排序算法。
java實現
public void choiceSort(int[]a)
{
for(int i=0;i<a.length-1;i++)
{
int min=i;
for(int j=i+1;j<a.length;j++)
{
if(a[j]<a[min])
{
min=j;
}
}
if(a[min]!=a[i])
{
int temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
}
That's all.