关闭

js实现合并两个有序数组

时间: 2018-09-25阅读: 2249标签: 算法

给定两个有序整数数组arr1和arr2,将 arr2和arr1进行合并为一个单调非递减的数组,并将其输出。


方法一、利用循环:

function mergeArray(arr1,arr2){
	var ind1=0; //标记arr1的对比元素的初始索引值
	var ind2=0; //标记arr2的对比元素的初始索引值
	var arr=[]; //作为输出的新数组
	while(ind1<arr1.length && ind2<arr2.length){ //当arr1和arr2元素均未全部存入arr中,则从第一个元素开始进行比较,将较小的那个元素存入arr
		if(arr1[ind1]<=arr2[ind2]){
			arr.push(arr1.slice(ind1,ind1+1)[0]); //若arr1的对比元素小于arr2的对比元素,则将arr1的对比元素存入arr中
			ind1++;
		}else{
			arr.push(arr2.slice(ind2,ind2+1)[0]);
			ind2++;
		}
	}
	while(ind1<arr1.length){ //当arr2的元素已全部存入arr中,则直接将arr1剩余的所有元素依次存入arr
		arr.push(arr1.slice(ind1,ind1+1)[0]);
		ind1++;
	}
	while(ind2<arr2.length){ //当arr1的元素已全部存入arr中,则直接将arr2剩余的所有元素依次存入arr
		arr.push(arr2.slice(ind2,ind2+1)[0]);
		ind2++;
	}
	return arr;
}


方法二、直接使用数组的sort方法:

function mergeArray(arr1,arr2){
    return arr1.concat(arr2).sort(function(arr1,arr2){return arr1-arr2 })
}


结果:

mergeArray([1,5,10],[2,6,8])
//shuc(6) [1, 2, 5, 6, 8, 10]


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/1113

关闭

js实现统计一个字符串中出现最多的字母的方法总汇

给出一个字符串,统计出现次数最多的字母。方法一为 String.prototype.charAt:先遍历字符串中所有字母,统计字母以及对应显示的次数,最后是进行比较获取次数最大的字母。方法二 String.prototype.split:逻辑和方法一相同,只不过是通过 split 直接把字符串先拆成数组。

JS数据结构与算法_链表

链表更加像是数组。链表和数组都是用于存储有序元素的集合,但有几点大不相同,链表的实现不像之前介绍的栈和队列一般依赖于数组(至少我们目前是这样实现的),它必须自己构建类并组织逻辑实现。我们先创建一个Node类

为什么我认为数据结构与算法对前端开发很重要?

一个具有层级结构的数据,实现这个功能非常容易,因为这个结构和组件的结构是一致的,递归遍历就可以了。但是,由于后端通常采用的是关系型数据库,所以返回的数据通常会是这个样子:前端这边想要将数据转换一下其实也不难,因为要合并重复项

js背包问题算法_JavaScript 背包问题详解

打算好好学一下算法,先拿背包问题入手。最开始的01背包耗时最多,以前只会枚举(就是普通的for循环,暴力地一步步遍历下去),递归与二分,而动态规划所讲的状态表与状态迁移方程为我打开一扇大门。

JS常见算法题目

JS常见算法题目:xiaoshuo-ss-sfff-fe 变为驼峰xiaoshuoSsSfffFe、数组去重、统计字符串中出现最多的字母、字符串反序、深拷贝、合并多个有序数组、约瑟夫环问题

js字典树算法_Trie树(字典树)实现与应用

字典树又称Trie树、前缀字,单词查找树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树结构。 字典树是处理字符串常见的一种树形数据结构

六种排序算法的Js实现

本文将介绍数据排序的基本算法和高级算法。这些算法都只依赖数组来存储数据。数组测试平台首先我们构造一个数组测试平台类,这些算法非常逼真地模拟了人类在现实生活中对数据的排序。

Js全排列的六种算法具体实现

六种算法有些是对位置进行排列,例如回溯、排序等,因为这样可以适应各种类型的元素,而非要求待排列元素一定是数字或字母等

js算法_奇偶分割数组

分割一个整数数组,使得奇数在前偶数在后。 比如:给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。思路分析:排序好的数组:找到奇数进行操作。乱序的数组:使用sort方法进行排序+提取奇数

数据结构与算法之绪论

什么是数据结构?简单来说可以解释为:程序设计=数据结构+算法;主要是用来研究数据结构的关系,数据元素之间存在的一种或多种特定关系的集合;

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!