问答详情
源自:5-9 递归函数练习

为什么没有正常排序

排序不正确的原因是什么呢http://img.mukewang.com/5deb27a70001537119201080.jpg

提问者:慕粉0375278 2019-12-07 12:18

个回答

  • 慕无忌8885290
    2020-11-10 21:48:02

    你想用什么排序算法?

    排序的时候,你有两层循环,其中内层循环i无论是for的小括号里还是后面大括号掉换都没有外层for循环k的参与,那么这个k就是没有作用的东西,所以肯定是不对的。

    举个例子:

    function p(a){

        var n = a.length; 

        for(k = 1;k<n;k++){

            for(i = k;i>0;i--){//这里,令i=k

                if(a[i]<a[i-1])//k 和前一位 k - 1比较,

                   swap(a,i,i-1);//将较小的调到前面

            }

        }

    }

    function swap(a,f,s){

        t = a[f];

        a[f] = a[s];

        a[s] = t;

    }