js算法

js算法:Merge Sort 归并排序

我的未来我决定 提交于 2019-12-25 21:28:45
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Merge Sort : 归并排序,把一个大问题分解成若干相同的小问题,解决小问题后,合并小问题结果,最终把大问题解决. 例如要排序数组 originArr = [2, 5, 3, 8, 9, 6, 3, 4, 2] 先把问题分解为排序 leftArr = [2, 5, 3, 8, 9] 和 rightArr = [6, 3, 4, 2]两个小数组,然后合并leftArr和rightArr,当排序leftArr的时候发现问题还是太复杂, 再把leftArr分解为 leftArr1 = [2, 5, 3] 和 rightArr1 = [8, 9] ...以此递归调用,直到 leftArrN = [2]... //分治法排序 var originArr = [2, 5, 3, 8, 9, 6, 3, 4, 2] let startTime = new Date().valueOf(); console.info("原始数组:", originArr) function mergeSort(arr, from, to) { //寻找合适的分割点 let mid = parseInt((to + from) / 2); if (to > from) { //如果 to!= from 说明问题还是太复杂,递归调用分解问题