一道面试题,求大侠指教
int fun(char *p,int len)
{
int i = 0,j = 0,tmp = 0;
for(i = 0;i<len;i++)
{
for(j = i+1;j<len;j++)
{
if(a[i]>a[j])
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
这是选择排序法,请指出有哪几个地方可以优化?
面试官告诉我可以减少定义tmp变量,有好几种方法!求各位大侠指教。。。。
[解决办法]
void func(int *a, int len) { int i,j,k,temp; for(i = 0; i < len - 1; i ++) { k = i; for(j = i + 1;j < len ;j ++) { if(a[k] > a[j]) { k = j; } } if(k != i) { temp = a[i]; a[i] = a[k]; a[k] = temp; } } }