算法原理:每一趟从待排序的元素中找到最小的元素,然后放到已经排好序的有序去的最后直到所有的元素都排好序为止。
图示:
代码:
void SelectSort(int a[], int n) { int i, j, k; int temp; for (i = 0; i < n - 1; i++)//每一趟循环从待排序的元素中选择最小的一个元素插入排好序的序列的最后 { k = i;//无序区中最小元素的位置为k for (j = i + 1; j < n; j++) { if (a[j] < a[k])//找到无序区中最小元素的位置为k k = j; } if (k != i)//如果k与i不相等则将该找到的最小值换到有序区的最后一位 { temp = a[k]; a[k] = a[i]; a[i] = temp; } } }