快速排序法很简单,但是它的效率很低,在实际中使用较少。一般只是在数据量非常小的时候为了简单才会使用。
基本思想:每一趟从后面剩余的未排序的数据中选出最小(最大)的数据,放到已排好的那些数据的末尾,直到所有记录排序完成为止。
很容易理解,直接看代码就可以。
代码:
void SelectionSort(int * pArry, int iLen)
{
int i, j;
int k;
int temp;
for (i = 0; i < iLen; i++)
{
k = i;
for (j = i + 1; j < iLen; j++)
{
if (pArry[j] < pArry[k])
{
k = j;
}
}
if ( k != i)
{ temp = pArry[i];
pArry[i] = pArry[k];
pArry[k] = temp;
}
}
}
int main()
{
int num[]={2,1,34,6,8,5,3,6,8,0,5,5,35,3,567,74,98};
for(int i=0;i<17;i++)
cout<<num[i]<<' ';
SelectionSort(num,17);
cout<<endl;
for(int i=0;i<17;i++)
cout<<num[i]<<' ';
return 0;
}