思想:
分已排序區(qū)間和未排序區(qū)間。每次會從未排序區(qū)間中找到最小的元素,將其放到已排序區(qū)間的末尾貌虾。
int* selectSort(int a[], int n) {
if (n <= 1) {
return a;
}
int i, j, index;
for (i = 0; i < n - 1; i++) {
index = i;
for (j = i + 1; j < n; j++) {
if (a[index] > a[j]) { // 在未排序的部分尋找最小的值的索引
index = j;
}
}
if (index != i) { // 是否需要交換數(shù)據(jù)的位置
int temp = a[i];
a[i] = a[index]; // 將最小值插入已排序的末尾
a[index] = temp;
}
}
return a;
}
使用
int a[5] = {3, 1, 5, 4, 2};
int number = sizeof(a) / sizeof(int);
int *b = selectSort(a, number);
for (int i = 0; i < number; i++) {
NSLog(@"%d", b[i]);
}