关于选择排序法问疑
下面是我看到的一段程序,是关于选择排序法的,#include "stdio.h"
main()
{
int n, i, k, x, min, min_k, a[100];
printf( "please input your number:\n" );
scanf("%d", &n );
printf( "please input yout numbers:\n" );
for( i = 0; i < n; i++ )
scanf("%d", &a[i]);
for( k = 0;k < n-1; k++ )
{
min = a[k];
min_k = k;
for( i = k; i < n; i++ )
if( a[i] < min )
{
min = a[i];
min_k = i;
}
x = a[min_k];
a[min_k] = a[k];
a[k] = x;
}
for( i = 0; i < n; i++ )
printf("%d ", a[i] );
printf( "\n" );
}
其中我不懂之处就是:k是代表排序的步数呢?还是脚标呢?然后k取这个循环是什么意思,我总感觉这个程序还可以写简单点的。
我对数组操作很不熟悉,希望大家给予指点。