选择排序
找到未排序的数据中的最小的数的下标;让他与未排序的数列第一个数做交换;则第一个数就是有序序列的最后一个元素;再把未排序的序列按以上操作继续做; 比如:
未排序序列第一个数下标 比较次数 确定序列数
0 n-1 1
1 n-1-1 2
......
n-1 0 n(最后一次不需要比较就可以确定序列,所以选择排序的比较次数数n-1次)
void chosesort(int *arr, int n)
{
int min = 0;
for(int i = 0; i < n-1; i++) //未排序的第一个序数的下标
{
min = i;
for(j = i+1; j < n; j++) //找出未排序的最小值下标
{
if(arr[min] < arr[j]) min = j;
}
swap(arr, i, min);
}
}

浙公网安备 33010602011771号