在数组中随便找个数认为他最大,用这个数和数组中其他数比较
比这个数大就让最大的数等于这个数
void SelectSort(int* arr,int size)
{
int i,j;
int max = 0;
//比较多少次
for(i=0;i<size-1;i++)
{
max = 0;
//比较多少个元素
for(j=1;j<size-i;j++)
{
if(arr[j] > arr[max])
{
max = j;
}
}
//最大元素的数组下标不能是当前比较的最后一个
//因为下面这种交换要去两个变量有不同的地址空间
//可以用中间变量代替这种方式,就没有必要if判断了
if(max != size-1-i)
{
arr[max] = arr[max] + arr[size-1-i];
arr[size-1-i] = arr[max]-arr[size-1-i];
arr[max] = arr[max]-arr[size-1-i];
}
}
}