算法过程如图所示,(图片来自网络)
代码:
void swapInt(int *p, int *q)
{
int temp = *p;
*p = *q;
*q = temp;
}
void selectSort(int *arr, int length)
{
for(int i=0; i<length; ++i)
{
int minIndex = i;
for(int j=i+1; j<length; ++j)
{
if (arr[j]<arr[minIndex])
{
/* code */
minIndex = j;
}
}
if (arr[i] != arr[minIndex])
{
swapInt(&arr[i], &arr[minIndex]);
}
}
}
时间复杂度 O ( n 2 ) O(n^2) O(n2)。