形象视频:http://v.youku.com/v_show/id_XMjU4NTY5NTcy.html
思路比较简单,就是将第i个元素作为最小值去变量len-i个元素(j=i+1),分别比较,如果arr[i]>arr[j]则交换数据,新赋值的arr[i]继续遍历剩下的元素,重复比较和替换操作。时间复杂度为O(n^2),空间复杂度为O(1)
版本一
void SlectSort(int *arr, int len)
{
int tmpdata;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
{
if(arr[i]>arr[j])
{
tmpdata=arr[i];
arr[i]=arr[j];
arr[j]=tmpdata;
}
}
}
}
版本二
void SlectSort(int *arr, int len)
{
int tmpdata;
for(i=0;i<len;i++)
{
int nIndex=i;
for(j=i+1;j<len;j++)
{
if(arr[i]>arr[j])
{
nIndex=j
}
if(nIndex!=i)
{
tmpdata=arr[i];
arr[i]=arr[nIndex];
arr[nIndex]=tmpdata;
}
}
}
}