JavaScript实现归并排序及vscode输出乱码解决

思路

归并排序思路:11.6 归并排序 - Hello 算法

总体上来讲就是 递归分解 + 归并排序 代码如下↓

代码

javascript 复制代码
//归并排序
function merge(left, right){
    console.log(flag++);
    console.log(left);
    console.log(right);
    let result = new Array();
    let il = 0, ir = 0;
    //左右两个数组的元素依次进行比较 将较小的元素加入结果数组中 
    while(il < left.length && ir < right.length){
        if(left[il] < right[ir]){
            result.push(left[il]);
            il++;
        }else{
            result.push(right[ir]);
            ir++;
        }
    }
    //左边数组、右边数组还有剩余时,将剩余元素加入结果数组
    while(il < left.length){
        result.push(left[il]);
        il++;
    }
    while(ir < right.length){
        result.push(right[ir]);
        ir++;
    }
    return result;
}
//递归分解
function mergeSort(array){
    let length = array.length;
    //array长度为1 不需要排序 直接返回
    if(length <= 1){
        return array;
    }
    //找到中间索引值
    const mid = parseInt(length / 2);
    //截取左半部分和右半部分
    const left = array.slice(0,mid);
    const right = array.slice(mid);
    //递归分解后 选择排序合并
    return merge(mergeSort(left),mergeSort(right));
}

输入:

javascript 复制代码
var nums = [7,3,2,6,0,1,5,4];

输出:

javascript 复制代码
const result = mergeSort(nums);
console.log(result);

输出结果:

javascript 复制代码
[0, 1, 2, 3, 4, 5, 6, 7]

资料补充

如何在vscode中使用运行js(输出结果出现乱码) ?

  1. 在vscode中安装Code Runner插件
  2. node.js官网下载安装node.js
  3. 安装完毕后重启电脑即可运行
相关推荐
百锦再13 分钟前
[特殊字符] Python在CentOS系统执行深度指南
开发语言·python·plotly·django·centos·virtualenv·pygame
Anson Jiang13 分钟前
浏览器标签页管理:使用chrome.tabs API实现新建、切换、抓取内容——Chrome插件开发从入门到精通系列教程06
开发语言·前端·javascript·chrome·ecmascript·chrome devtools·chrome插件
掘金安东尼16 分钟前
黑客劫持:周下载量超20+亿的NPM包被攻击
前端·javascript·面试
会开花的二叉树22 分钟前
继承与组合:C++面向对象的核心
java·开发语言·c++
剑亦未配妥1 小时前
移动端触摸事件与鼠标事件的触发机制详解
前端·javascript
长河2 小时前
Java开发者LLM实战——LangChain4j最新版教学知识库实战
java·开发语言
Cyan_RA92 小时前
SpringMVC @RequestMapping的使用演示和细节 详解
java·开发语言·后端·spring·mvc·ssm·springmvc
再见晴天*_*5 小时前
SpringBoot 中单独一个类中运行main方法报错:找不到或无法加载主类
java·开发语言·intellij idea
lqjun08277 小时前
Qt程序单独运行报错问题
开发语言·qt
hdsoft_huge9 小时前
Java & Spring Boot常见异常全解析:原因、危害、处理与防范
java·开发语言·spring boot