js有序数组的连接问题_javascript技巧
1.前言
昨天碰到一道关于如何解决有序数组的连接问题,这是一个很常见的问题。但是这里要考虑到代码的效率问题,因为要连接的数组都是有序的,这是一个非常重要的前提条件。
2.简单但效率不高的算法
我首先想到的是使用内置的concat方法,然后再对其进行排序,这种方法完全没有考虑到数组是有序的前提条件,代码如下:
function concatSort(arrA,arrB){
return arrA.concat(arrB).sort();
}
为了弄清楚sort排序到底使用的是什么算法,特地到看了V8引擎的算法(连接),大概意思是当数组的长度较短的时候使用的是插入排序(InsertionSort),当数组的长度较长的时候使用的是快速排序(QuickSort)。纠正了自己长时间来的一个误区,一直以为sort使用的是冒泡。
3. 取小值插入的方法
大概思路:就是同时对两个数组进行遍历,设置两个标志(i,j)用于记录遍历的位置,将两个数组中较小的那个值插入新数组中,接着再将标志往前移动一个位置,重复比较,直到搜索值都插入到数组中。第一次做的时候判断条件写错了,所以出现了死循环,暴露了自己算法能力还是挺薄弱的。
function con(arrA,arrB){
var i , j , k, lenA = arrA.length, lenB = arrB.length , allLen = lenA + lenB,result = [];
for(i=0,j=0,k =0; k if(i = lenB || arrA[i] result.push(arrA[i++]);
}else{
result.push(arrB[j++]);
}
}
return result;
}
var a = [1,2,4], b = [3,5,6,7,10];
console.log(con(a,b)); //[1,2,3,4,5,6,7,10]
将这个算法与上面的方法1,在jsperf进行性能对比,发现第二种算法的效率明显优于第一种。不相信就猛击这里。
4.问题升级:增加合并数组的数量
假如增加数组的个数,;例如 A = [1,5],B = [2,6],C = [3,4].......K = [....],求合并的数组。
当时被问到这个问题,第一感觉就是很像”归并算法“,但是又一想使用归并算法是用不上数组有序这个前提条件的。接着又想到了堆排序、快排序等算法,发现就是无法很有效地用上数组有序这个前提条件,最后选择放弃。面试完后依然没有思路,想了好久不知道如何高效的解决这个问题。快回宿舍的时候,师弟说了一句”又要过节了“,”又“字点醒了我,代码如下:
function conMore(){
var outerArr = [], i ,len = arguments.length , result = [];
for(i = 0 ; i
}
if(result.length === 0){
result = outerArr[0];
}
for(i=1 ;i result = con(result,outerArr[i]);
}
return result;
}
function con(arrA,arrB){
var i , j , k, lenA = arrA.length, lenB = arrB.length , allLen = lenA + lenB,result = [];
for(i=0,j=0,k =0; k if(i = lenB || arrA[i] result.push(arrA[i++]);
}else{
result.push(arrB[j++]);
}
}
return result;
}
var a = [1,4,7], b = [2,5,8], c = [3,6,9,10];
console.log(conMore(a,b,c)); //[1,2,3,4,5,6,7,8,9,10]
再次使用jsperf对代码的性能进行测试分析,结果请猛击这里.

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Après la mise à jour vers le dernier système Win11, de nombreux utilisateurs ne savent pas comment connecter le contrôleur pour jouer à des jeux. Pour cette raison, nous vous proposons aujourd'hui un didacticiel détaillé sur la connexion du contrôleur Win11. Si vous n'avez pas encore terminé la connexion, Voyons comment le faire fonctionner. Comment connecter le contrôleur dans Win11 : 1. Cliquez sur Démarrer ci-dessous, puis entrez les paramètres Windows pour ouvrir le « Panneau de configuration ». 2. Après avoir entré, vous pouvez trouver « Afficher les appareils et les imprimantes » pour entrer. 3. À ce stade, vous pouvez voir les informations sur le périphérique contrôleur et simplement établir la connexion. 4. Une fois la connexion réussie, un √ apparaît et la connexion est terminée.

Plusieurs fois, nous devons utiliser un ordinateur pour nous connecter à l'imprimante pour diverses opérations d'impression, mais parfois certains utilisateurs rencontreront le problème que Win7 ne peut pas se connecter à l'imprimante 0x0000011b. Voici la solution spécifique. Win7 ne peut pas se connecter à l'imprimante 0x0000011b1. Touche de raccourci "win+r", entrez "regedit" 2. Recherchez le chemin suivant "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print" 3. Cliquez avec le bouton droit pour créer une nouvelle valeur "DWORD ( 32 bits) (D) et définissez la valeur sur 0. Nommez le nouveau projet « RpcAuthnLevelPri »

Afin de vous assurer que votre connexion réseau fonctionne correctement ou de résoudre le problème, vous devez parfois vérifier les détails de la connexion réseau sous Windows 11. En faisant cela, vous pouvez afficher diverses informations, notamment votre adresse IP, votre adresse MAC, la vitesse de la liaison, la version du pilote, etc., et dans ce guide, nous vous montrerons comment procéder. Comment trouver les détails de la connexion réseau sur Windows 11 ? 1. Utilisez l'application « Paramètres » et appuyez sur la touche + pour ouvrir les paramètres Windows. WindowsI Ensuite, accédez à Réseau et Internet dans le volet de gauche et sélectionnez votre type de réseau. Dans notre cas, il s'agit d'Ethernet. Si vous utilisez un réseau sans fil, sélectionnez plutôt un réseau Wi-Fi. Au bas de l'écran, vous devriez voir

Comment connecter la balance de graisse corporelle Keep ? Keep dispose d'une balance de graisse corporelle spécialement conçue, mais la plupart des utilisateurs ne savent pas comment connecter la balance de graisse corporelle Keep. Voici ensuite le didacticiel graphique sur la méthode de connexion de la balance de graisse corporelle Keep. L'éditeur apporte aux utilisateurs, les utilisateurs intéressés viennent y jeter un œil ! Comment connecter la balance de graisse corporelle Keep 1. Ouvrez d'abord le logiciel Keep, accédez à la page principale et cliquez sur [Mon] dans le coin inférieur droit pour sélectionner [Matériel intelligent] 2. Ensuite, sur la page Mes appareils intelligents, cliquez sur le bouton ; Bouton [Ajouter un appareil] au milieu ; 3, puis sélectionnez l'appareil auquel vous souhaitez ajouter une interface, sélectionnez [Échelle de graisse corporelle/poids intelligente] 4. Ensuite, sur la page de sélection du modèle d'appareil, cliquez sur l'option [Conserver la balance de graisse corporelle] ; ; 5. Enfin, dans l'interface ci-dessous, enfin [Ajouter maintenant] en bas

Solutions aux connexions réseau restreintes dans Win10 Avec le développement rapide de la technologie, Internet est devenu un élément indispensable de la vie des gens. Cependant, nous pouvons parfois rencontrer des problèmes lors de la connexion à Internet sur des ordinateurs utilisant le système d'exploitation Windows 10, dont l'un est la restriction des connexions. Dans ce cas, nous ne pouvons pas accéder aux pages Web, télécharger des fichiers ou utiliser normalement les fonctions réseau. Alors, y a-t-il un moyen de résoudre ce problème ? Cet article vous présentera plusieurs solutions courantes. 1. Vérifiez les paramètres de connexion réseau.

Que signifie 0x0000011b lors de la connexion à une imprimante ? Les utilisateurs rencontrent souvent divers codes d'erreur lorsqu'ils utilisent des ordinateurs, des ordinateurs portables ou d'autres appareils. Parmi eux, 0x0000011b est un code d’erreur de connexion d’imprimante courant. Alors, que signifie la connexion de l’imprimante 0x0000011b ? Tout d’abord, nous devons comprendre les principes de base de la connexion d’une imprimante. Lorsque nous devons imprimer des fichiers à partir de l'ordinateur, nous devons généralement connecter l'imprimante à l'ordinateur pour le transfert de données entre les deux. Cette connexion peut être établie via

Avec le développement de l’ère numérique, les imprimantes partagées sont devenues un élément indispensable de l’environnement de bureau moderne. Cependant, nous pouvons parfois rencontrer le problème que l'imprimante partagée ne peut pas être connectée à l'imprimante, ce qui affectera non seulement l'efficacité du travail, mais provoquera également une série de problèmes. Cet article vise à explorer les raisons et les solutions pour lesquelles une imprimante partagée ne peut pas se connecter à l'imprimante. Il existe de nombreuses raisons pour lesquelles une imprimante partagée ne peut pas se connecter à l'imprimante, la plus courante étant les problèmes de réseau. Si la connexion réseau entre l'imprimante partagée et l'imprimante est instable ou interrompue, le fonctionnement normal ne sera pas possible.

1. Placez les écouteurs dans la boîte des écouteurs et maintenez le couvercle ouvert. Appuyez et maintenez enfoncé le bouton de la boîte pour entrer dans l'état d'appairage des écouteurs. 2. Activez la fonction regarder de la musique et sélectionnez les écouteurs Bluetooth, ou sélectionnez les écouteurs Bluetooth dans la fonction des paramètres de la montre. 3. Sélectionnez le casque sur la montre à associer avec succès.
