1.選擇排序概述
- 每次將要排序的組合中最小(大)的元素放在最后,直到?jīng)]有要排序的元素。
2.代碼實(shí)現(xiàn)
public static void selectSort(int[] n) {
for (int i = 0; i < n.length; i++) {
int min = i;//設(shè)定最小值暫時(shí)為n[i]
for (int j = i; j < n.length; j++) {
if (n[j] < n[min]) {
min = j;//循環(huán)找出最小值
}
}
int temp = 0;//將最小值與n[i]交換
temp = n[min];
n[min] = n[i];
n[i] = temp;
}
}
- 時(shí)間復(fù)雜度依然為O(n^2)
3.與冒泡排序比較
相同處,都是每次循環(huán)一一比較,然后的到最大(小)值。
不同處,冒泡排序時(shí)比較一次,交換一次。選擇排序時(shí)比較一個(gè)循環(huán),然后交換一次,交換次數(shù)遠(yuǎn)遠(yuǎn)少于冒泡排序。