排序演算法-歸併排序
阿新 • • 發佈:2021-02-20
將陣列一分為二,直至只有一個元素
function mergeSort(arr){ let len=arr.length; if(len<2){ return arr; } var middle=Math.floor(len/2), left=arr.slice(0,middle), right=arr.slice(middle); return merge(mergeSort(left),mergeSort(right)); } function merge(left,right){ var result=[], len1=left.length, len2=right.length, i=0, j=0; while(i<len1&&j<len2){ if(left[i]<=right[j]){ result.push(left[i]); i++; }else{ result.push(right[j]); j++ } } while(i<len1){ result.push(left[i]); i++; } while(j<len2){ result.push(right[j]); j++; } return result; }