读书人

一路面试题求大侠指教

发布时间: 2012-09-16 17:33:16 作者: rapoo

一道面试题,求大侠指教
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变量,有好几种方法!求各位大侠指教。。。。

[解决办法]

C/C++ code
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;                  }      }  } 

读书人网 >C语言

热点推荐