選擇排序 升序
基本思想:
對于N記錄的序列,讓第1個記錄和其余 N-1個記錄進(jìn)行比較,選擇其中最小的數(shù)值與第1個記錄交換位置,
然后 讓第2個記錄和其余 N-2個記錄進(jìn)行比較,選擇其中最小的數(shù)值與第2個記錄交換位置
然后 讓第3個記錄和其余 N-3個記錄進(jìn)行比較,選擇其中最小的數(shù)值與第3個記錄交換位置。
一直到讓第N-1個記錄和其余 1個記錄進(jìn)行比較,選擇其中最小的數(shù)值與第N-1個記錄交換位置
void selectSort(long a[],long n){
long temp = 0;
for ( long i = 0; i< n-1; i++) {
for (long j=i+1; j < n; j++) {//當(dāng)i= 0是,a[0]將會與a[1]~a[n-1]進(jìn)行比較
if (a[j] < a[i]) {
temp =a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
最好的情況下時間復(fù)雜度O(n);
平均時間復(fù)雜度O(n^2);
最壞的情況下的時間復(fù)雜度O(n^2)