选择排序:
选择排序是一种直观的排序算法
算法步骤:
- 初始状态:无序区为R[1…n]],有序区为空。
- 从无序区R[1…n]中选择一个小(大)的记录R[k],将它与无序区第一个记录R[1]交换,使R[1…1]和R[2…n]分别变为记录个数增长加1的新有序区和记录减少1个的无序区
- 第i趟排序,i趟排序重复上 1 的步骤,最后得到R[1…i-1]和R[1…n]的有序和无序区
代码实现:
C++代码实现:
void select_sort(int *array, int length){
for (int i = 0; i < length-1; i++) {
int min = i;
for (int j = i + 1; j < length; j++) {
if(array[j] < array[min]){
min = j;
}
}
if(min != i){
int temp = array[min];
array[min] = array[i];
array[i] = temp;
}
}
}