利用C语言写的选择排序的算法如下:
平均时间复杂度为O(NN),最坏时间复杂度为O(NN),稳定性为不稳定;
#include <stdio.h>
void selectSort(int arr[],int N);
int main (void)
{
int i;
int A[10] = {1,7,5,3,8,2,9,4,6,0};
selectSort(A,10);
for(i = 0;i <10 ; i++)
{
printf("%d ",A[i]);
}
return 0;
}
void selectSort(int arr[],int N)
{
int i,j;
int index;//用来储存最小(最大)元素的下标
for(i = 0; i < N-1; i++)
{
index = i;
for(j = i+1; j < N; j++)
{
if(arr[j] < arr[index])
{
index = j;
}
}
/* 交换第i个元素和最小元素*/
int tmp = arr[index];
arr[index] = arr[i];
arr[i] = tmp;
}
}