首頁  >  文章  >  web前端  >  淺談javascript 歸併方法_基礎知識

淺談javascript 歸併方法_基礎知識

WBOY
WBOY原創
2016-05-16 16:18:501134瀏覽

ECMAScript5 也新增了2個歸併數組的方法:reduce()和reduceRight()。

 這兩個都會迭代數組的所有項目
        reduce():從第一項開始逐一遍歷到最後。
        reduceRight():從陣列的最後一項開始,遍歷到陣列的第一項。

這兩個方法都接受兩個參數:在每一項上呼叫的函數(參數為:前一個值,當前值,項的索引,數組物件)

 這個函數傳回的任何值鬥毆會作為第一個參數自動傳給下一項。第一次迭代發生在陣列的第二項上,
         因此第一個參數是陣列的第一項,第二個參數是陣列的第二項
         與 作為歸併基礎的初始值。
        使用reduce()方法來執行陣列中所有數值總和的運算,例如:

複製程式碼 程式碼如下:

        var values = [1, 2, 3, 4, 5];
        var sum = values.reduce(function (prev, cur, index, array) {
            return prev cur;
        });
        alert(sum);
        //結果一樣,只是方向相反而已
        var sum2=values.reduceRight(function (prev,cur,index,array) {
            return prev cur;
        });
        alert(sum2);

歸併排序(Merge sort)是建立在歸併操作上的一種有效的排序演算法。此演算法是採用分治法(Divide and Conquer)的一個非常典型的應用。

歸併(Merge)排序法是將兩個(或兩個以上)有序表合併成一個新的有序表,即把待排序序列分成若干個子序列,每個子序列是有序的。然後再把有序子序列合併為整體有序序列。

歸併排序是建立在歸併操作上的一種有效的排序演算法。此演算法是採用分治法(Divide and Conquer)的一個非常典型的應用。將已有序的子序列合併,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合併成一個有序表,稱為2-路歸併。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn