就这麽简单,有点吃惊吧!! qsort( [] )  -> [];qsort( [ Pivot | T ] ) ->                              qsort( [ X || X<-T, X < Pivot ] )             ++ [Pivot] ++             qsort( [ X || X<-T, X >= Pivot ] ).

解决方案 »

  1.   

    语言是erlang,以前没接触过的估计看不懂吧?完全是另一种编程思想,
      

  2.   

    wan quan kan bu dong , hehe 
      

  3.   


    没接触过这种语言,不过能大概看出点思路qsort( [] )  -> []; //这个好像是定义规则,即相当于函数声明,结果返回同一个数组qsort( [ Pivot | T ] ) ->   //这个好像是定义函数的具体实现的规则                  qsort( [ X || X <-T, X < Pivot ] ) //当数组中的元素X不满足<Pivot时,T跟X交换,然后递归            ++ [Pivot] ++ //这个有点看不明白,感觉是左右下标分别移动            qsort( [ X || X <-T, X >= Pivot ] ). //当数组中的元素X不满足>=Pivot时,T跟X交换,然后递归
      

  4.   

    无聊,你自己写个函数que(参数);
    之后调用
    que(参数)还更简洁呢。
    脚本语言不差不多都是这个原理么?
      

  5.   

    Erlang 对数组的操作非常强大。qsort( [ Pivot | T ] ) 表示把数组的第一个元素放到 Pivot 中,把剩下的放到 T 中,进行调用;qsort( [ X || X <- T, X < Pivot ] )       把 T 中所有小于 Pivot 的取出来,继续调用 qsort
    ++ [Pivot] ++                             ++ 表示数组的结合,即把 Pivot 的值合并进来
    qsort( [ X || X <- T, X >= Pivot ] ).     把 T 中所有大于 Pivot 的取出来,继续调用 qsort经过这一步之后,以第一个元素为界,左边比这个数小,右边比这个数大。然后再将左边和右边的数组继续调用 qsort,直到 T 中没有元素了,这样的话排序就完成了。
      

  6.   


    这个函数Java里也有,应该是Java先有的
      

  7.   

    请教一下,Erlang这种语言主要是用在哪方面的?
      

  8.   

    太强悍了。用它和c写的qsort比较一下,看看谁更快,然后吧结果贴出来让大家见识见识。