在数据结构中,我们都有去学过选择排序,无非是从后面一个一个的选择最小的数字:
#include <stdio.h>
#include <stdlib.h>
void SelectSort(int *pnData,int nLen)
{
int i,j,nIndex,nTemp;
for(i=0;i<nLen-1;++i)
{
nIndex=i;
for(j=i+1;j<nLen;++j)
{
if(pnData[j]<pnData[nIndex])
{
nIndex=j;
}
}
if(nIndex != i)
{
nTemp=pnData[i];
pnData[i]=pnData[nIndex];
pnData[nIndex]=nTemp;
}
}
}
void main()
{
int nData[10]={4,10,9,8,7,6,5,4,3,2};
SelectSort(nData,10);
for(int i=0;i<10;++i)
{
printf("%d",nData[i]);
}
printf("\n");
}
开始以第一个数字进行比较,循环遍历寻找最小的数字,然后进行替换!如果替换之后nIndex不等于i的话,就进行交换两个数字的位置!此时nIndex处的值变为第i个最小值,i从0到9!