JavaScript实现归并排序及vscode输出乱码解决
思路
归并排序思路:11.6 归并排序 - Hello 算法
总体上来讲就是 递归分解 + 归并排序 代码如下↓
代码
//归并排序
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));
}
输入:var nums = [7,3,2,6,0,1,5,4];
输出:
const result = mergeSort(nums); console.log(result);输出结果:
[0, 1, 2, 3, 4, 5, 6, 7]
资料补充
如何在vscode中使用运行js(输出结果出现乱码) ?
- 在vscode中安装Code Runner插件
- 去node.js官网下载安装node.js
- 安装完毕后重启电脑即可运行
相关文章:
JavaScript实现归并排序及vscode输出乱码解决
思路 归并排序思路:11.6 归并排序 - Hello 算法 总体上来讲就是 递归分解 归并排序 代码如下↓ 代码 //归并排序 function merge(left, right){console.log(flag);console.log(left);console.log(right);let result new Array();let il 0, ir 0;//左右两个数…...
Redis面试题40
人工智能如何影响医疗保健行业? 答:人工智能对医疗保健行业产生了深远的影响,为医疗保健提供了更高效、准确和个性化的服务。以下是一些人工智能在医疗保健领域的应用示例: 疾病诊断:人工智能可以利用机器学习和深度学…...
2024年危险化学品经营单位安全管理人员证考试题库及危险化学品经营单位安全管理人员试题解析
题库来源:安全生产模拟考试一点通公众号小程序 2024年危险化学品经营单位安全管理人员证考试题库及危险化学品经营单位安全管理人员试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局࿰…...
Kafka相关内容复习
为什么要用消息队列 解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 可恢复性 系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队…...
JVM之Java内存区域
JVM-Java内存区域 Java内存区域是Java虚拟机(JVM)管理的内存资源的逻辑划分,用于存储程序运行时所需的数据。Java内存区域的合理划分和管理对于程序的性能和稳定性具有重要影响。本文将深入探讨Java内存区域的各个部分,包括方法区…...
几个MySQL系统调优工具
几个MySQL系统调优工具 可以使用下面几个工具来做基准测试: sysbench:一个模块化,跨平台以及多线程的性能测试工具。 https://github.com/akopytov/sysbench iibench-mysql:基于Java的MySQL / Percona / MariaDB 索引进行插入性能…...
Linux内核与驱动面试经典“小”问题集锦(2)
接前一篇文章:Linux内核与驱动面试经典“小”问题集锦(1) 问题2 问:spin_lock和spin_lock_irq以及spin_lock_irqsave的区别是什么?也可以说它们之间有什么区别和联系? 备注:此题是自旋锁问题的…...
windws安装mysql详细步骤
1.下载地址: https://dev.mysql.com/downloads/mysql/2.下载好mysql安装包后,将其解压到指定目录,并记下解压的目录,后续用于环境变量配置: 3. 在bin目录同级下创建一个文件,命名为my.ini [mysqld] # 设…...
Linux的库文件
目录 概述: 静态库: 静态库概述: 静态库的制作 共享库(动态库) 共享库概述 动态库制作 动态库临时生效 动态库长期生效 动态库的升级 位置无关代码 概述: 库文件一般就是编译好的二进制文件&…...
JAVA Web 学习(五)Nginx、RPC、JWT
十二、反向代理服务器——Nginx 支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持…...
Python编程的十大神奇依赖库
Python是一门广受欢迎的编程语言,其生态系统丰富多彩,拥有许多令人惊叹的依赖库,可以帮助程序员们在各种领域中创造出令人瞠目结舌的应用。在这篇文章中,我们将探讨Python编程的十大神奇依赖库,它们像魔法一样…...
Java类的继承
XHTMLMapper继承 XWPFDocumentVisitor: 由于endVisitTableCell是抽象方法,XHTMLMapper中必须要实现; existErr()子类是否重写都是自由的; public abstract class XWPFDocumentVisitor<T, O extends Options, E extends IXWPFM…...
【DC渗透系列】DC-4靶场
主机发现 arp-scan -l┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:6b:ed:27, IPv4: 192.168.100.251 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.100.1 00:50:56:c0:00:08 …...
开源软件全景解析:驱动技术创新与行业革新的力量
目录 什么是开源 开源的核心 开源软件的特点 为什么程序员应该拥抱开源 1.学习机会: 2.社区支持: 3.提高职业竞争力: 4.加速开发过程: 5.贡献和回馈: 开源软件的影响力 开源软件多元分析: 开源…...
目标检测及相关算法介绍
文章目录 目标检测介绍目标检测算法分类目标检测算法模型组成经典目标检测论文 目标检测介绍 目标检测是计算机视觉领域中的一项重要任务,旨在识别图像或视频中的特定对象的位置并将其与不同类别中的对象进行分类。与图像分类任务不同,目标检测不仅需要…...
跟着cherno手搓游戏引擎【20】混合(blend)
抽象: Renderer.h: #pragma once #include"RenderCommand.h" #include "OrthographicCamera.h" #include"Shader.h" namespace YOTO {class Renderer {public:static void Init();static void BeginScene(OrthographicCamera& …...
leetcode 3.无重复字符的最长字串(滑动窗口) (C++)DAY2
文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示…...
Android Build 依赖项
在项目中的Build.Gradle文件中dependencies代码块中添加指定依赖项。 有三种不同类型的依赖项 本地模块依赖项 implementation project(:mylibrary)这个mylibrary 必须在 settings.gradle 中使用的库名称相同 本地文件依赖项 implementation fileTree(dir: libs, include:…...
SpringMVC精简知识点
SpringMVC 数据格式化基本数据类型和字符串自动转换特殊数据类型和字符串自动转换 验证及国际化应用实例注意事项和使用细节注解的结合使用数据类型转换校验核心类-DatBinder取消某个属性的绑定中文乱码解决处理json和HttpMessageConverter<T>作业布置SpringMVC文件上传自…...
如何写好论文——(17)如何用批判性思维检阅文献
在写论文的时候,往往需要引用很多文献资料,作为论点来证明我们的研究目标是合理的。在讨论和结论中,我们往往也需要引用很多的文献资料和我们自己的研究结果放在一起,来证明我们的研究结果是有意义的。所以在选择文献资料的时候&a…...
3分钟焕新网易云音乐:BetterNCM Installer插件框架一键部署方案
3分钟焕新网易云音乐:BetterNCM Installer插件框架一键部署方案 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM Installer是一款专为网易云音乐PC版设计的开源插…...
新手避坑指南:用STM32F407和AS5600给无刷电机做FOC驱动,从硬件选型到代码调试全流程
STM32F407AS5600无刷电机FOC驱动实战:从零搭建到参数调优全解析 1. 硬件选型与电路设计避坑指南 选择适合的硬件组合是FOC驱动项目成功的第一步。对于刚接触无刷电机控制的开发者来说,市面上琳琅满目的开发板和电机型号往往让人眼花缭乱。经过多次项目…...
使用hgdbdeveloper开发工具导出数据后在异机恢复时报错
文章目录环境症状问题原因解决方案环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.8 症状 使用hgdbdeveloper开发工具时,因未正确配置数据库安装路径,导致导入数据时报错: 问题原因 排查开发工…...
如何快速掌握Pelican静态网站生成器:Full Stack Python的技术架构解析
如何快速掌握Pelican静态网站生成器:Full Stack Python的技术架构解析 【免费下载链接】fullstackpython.com Full Stack Python source with Pelican, Bootstrap and Markdown. 项目地址: https://gitcode.com/gh_mirrors/fu/fullstackpython.com 想要快速构…...
SOONet模型Keil5开发环境模拟:探索嵌入式设备视频事件检测前瞻
SOONet模型Keil5开发环境模拟:探索嵌入式设备视频事件检测前瞻 最近和几个做嵌入式开发的朋友聊天,大家聊到一个挺有意思的话题:现在AI模型越做越强,但好像都跑在云端或者高性能计算卡上。那些我们天天打交道的单片机、微控制器&…...
【Pygame】第12章 粒子系统与视觉特效实现
摘要 粒子系统是游戏特效中最常见、也最灵活的一种技术。无论是火焰、烟雾、爆炸、闪光、魔法轨迹,还是雨雪、星尘、能量波纹,很多看起来复杂的效果,其实都可以拆解成大量简单粒子的组合。 粒子系统的核心思想并不复杂:不去单独模…...
3步搞定PDF处理难题:Windows版Poppler让文档操作变得如此简单
3步搞定PDF处理难题:Windows版Poppler让文档操作变得如此简单 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 您是否经常需要从PDF文件…...
抖音无水印视频下载终极指南:DouYinBot完整使用教程
抖音无水印视频下载终极指南:DouYinBot完整使用教程 【免费下载链接】DouYinBot 抖音无水印下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 还在为抖音视频上的水印烦恼吗?想要收藏喜欢的视频却总是被平台限制困扰?今天…...
Android 15 触觉反馈:音乐节奏同步的触感反馈如何调节强度?
安卓15系统带来了一个有趣的新体验:音乐节奏同步触觉反馈。简单说,就是当你用手机听歌、刷短视频或玩游戏时,手机会根据播放声音的鼓点和节奏同步震动,让你不仅能听到,还能“摸到”音乐的脉搏,沉浸感更强。…...
Ivanti EPMM RCE CVE-2026-1340/1281完整分析
介绍:近日,Ivanti公司披露了Ivanti Endpoint Manager Mobile (EPMM)中存在的代码注入漏洞(CVE-2026-1281和CVE-2026-1340),并确认已存在在野利用。该漏洞源于 Apache HTTPd 调用的 Bash 脚本在处理时间戳比较时,未能有效过滤恶意参数…...
