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对代码的性能进行测试分析,结果请猛击这里.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Nach dem Update auf das neueste Win11-System sind sich viele Benutzer nicht sicher, wie sie den Controller zum Spielen anschließen sollen. Aus diesem Grund haben wir Ihnen heute eine ausführliche Anleitung zum Anschließen des Win11-Controllers zusammengestellt. Werfen wir einen Blick auf die Bedienung. So verbinden Sie den Controller in Win11: 1. Klicken Sie unten auf Start und geben Sie dann die Windows-Einstellungen ein, um die „Systemsteuerung“ zu öffnen. 2. Nach der Eingabe können Sie „Geräte und Drucker anzeigen“ aufrufen. 3. An dieser Stelle können Sie die Informationen zum Controller-Gerät sehen und einfach die Verbindung herstellen. 4. Nachdem die Verbindung erfolgreich hergestellt wurde, erscheint ein √ und die Verbindung ist abgeschlossen.

Oft müssen wir für verschiedene Druckvorgänge eine Verbindung zum Drucker herstellen, aber manchmal stoßen einige Benutzer auf das Problem, dass Win7 keine Verbindung zum Drucker 0x0000011b herstellen kann. Das Folgende ist die spezifische Lösung. Win7 kann keine Verbindung zum Drucker 0x0000011b1 herstellen. Tastenkombination „win+r“, geben Sie „regedit“ ein 2. Suchen Sie den folgenden Pfad „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print“ 3. Klicken Sie mit der rechten Maustaste, um einen neuen Wert „DWORD ( 32-Bit-Wert (D) und setzen Sie den Wert auf 0. Benennen Sie das neue Projekt „RpcAuthnLevelPri“.

Um sicherzustellen, dass Ihre Netzwerkverbindung ordnungsgemäß funktioniert oder um das Problem zu beheben, müssen Sie manchmal die Netzwerkverbindungsdetails unter Windows 11 überprüfen. Auf diese Weise können Sie eine Vielzahl von Informationen anzeigen, darunter Ihre IP-Adresse, MAC-Adresse, Verbindungsgeschwindigkeit, Treiberversion und mehr. In dieser Anleitung zeigen wir Ihnen, wie das geht. Wie finde ich Netzwerkverbindungsdetails unter Windows 11? 1. Verwenden Sie die App „Einstellungen“ und drücken Sie die +-Taste, um die Windows-Einstellungen zu öffnen. Navigieren Sie als Nächstes im linken Bereich zu „Netzwerk & Internet“ und wählen Sie Ihren Netzwerktyp aus. In unserem Fall ist das Ethernet. Wenn Sie ein drahtloses Netzwerk verwenden, wählen Sie stattdessen ein Wi-Fi-Netzwerk aus. Am unteren Bildschirmrand sollten Sie Folgendes sehen:

Wie schließe ich die Körperfettwaage an? Keep verfügt über eine speziell entwickelte Körperfettwaage, aber die meisten Benutzer wissen nicht, wie sie die Körperfettwaage anschließen sollen Editor bringt zu den Nutzern, interessierte Nutzer kommen und schauen! So schließen Sie die Keep-Körperfettwaage an: 1. Öffnen Sie zunächst die Keep-Software, gehen Sie zur Hauptseite, klicken Sie auf [Mein] in der unteren rechten Ecke und wählen Sie [Smart Hardware] aus. 2. Klicken Sie dann auf der Seite „Meine Smart-Geräte“. Klicken Sie auf die Schaltfläche [Gerät hinzufügen] in der Mitte. 3 Wählen Sie dann das Gerät aus, dem Sie eine Schnittstelle hinzufügen möchten. Wählen Sie dann [Intelligente Körperfett-/Gewichtswaage] aus. 4. Klicken Sie dann auf der Seite zur Auswahl des Gerätemodells auf [Körperfettwaage behalten]. Option 5. Schließlich in der unten gezeigten Benutzeroberfläche unten [Jetzt hinzufügen].

Lösungen für eingeschränkte Netzwerkverbindungen in Win10 Mit der rasanten Entwicklung der Technologie ist das Internet zu einem unverzichtbaren Bestandteil des Lebens der Menschen geworden. Allerdings können bei der Verbindung mit dem Internet auf Computern mit dem Betriebssystem Windows 10 manchmal Probleme auftreten, darunter eingeschränkte Verbindungen. In diesem Fall können wir nicht auf Webseiten zugreifen, Dateien herunterladen oder Netzwerkfunktionen nicht normal nutzen. Gibt es also eine Möglichkeit, dieses Problem zu lösen? In diesem Artikel werden Ihnen mehrere gängige Lösungen vorgestellt. 1. Überprüfen Sie zunächst die Netzwerkverbindungseinstellungen

Was bedeutet 0x0000011b beim Anschließen an einen Drucker? Benutzer stoßen bei der Verwendung von Computern, Laptops oder anderen Geräten häufig auf verschiedene Fehlercodes. Darunter ist 0x0000011b ein häufiger Fehlercode bei der Druckerverbindung. Was bedeutet also das Anschließen des Druckers 0x0000011b? Zunächst müssen wir die Grundprinzipien der Druckerverbindung verstehen. Wenn wir Dateien vom Computer aus drucken müssen, müssen wir normalerweise den Drucker an den Computer anschließen, um die Datenübertragung zwischen beiden zu ermöglichen. Diese Verbindung kann über hergestellt werden

Mit der Entwicklung des digitalen Zeitalters sind gemeinsam genutzte Drucker zu einem unverzichtbaren Bestandteil der modernen Büroumgebung geworden. Manchmal kann es jedoch vorkommen, dass der freigegebene Drucker nicht mit dem Drucker verbunden werden kann, was nicht nur die Arbeitseffizienz beeinträchtigt, sondern auch eine Reihe von Problemen verursacht. Ziel dieses Artikels ist es, die Gründe und Lösungen dafür zu untersuchen, warum ein freigegebener Drucker keine Verbindung zum Drucker herstellen kann. Es gibt viele Gründe, warum ein freigegebener Drucker keine Verbindung zum Drucker herstellen kann. Der häufigste Grund sind Netzwerkprobleme. Wenn die Netzwerkverbindung zwischen dem freigegebenen Drucker und dem Drucker instabil oder unterbrochen ist, ist ein normaler Betrieb nicht möglich.

1. Legen Sie die Ohrhörer in die Ohrhörerbox und lassen Sie den Deckel geöffnet. Halten Sie die Taste an der Box gedrückt, um in den Kopplungsstatus der Ohrhörer zu gelangen. 2. Schalten Sie die Funktion „Musik ansehen“ ein und wählen Sie „Bluetooth-Kopfhörer“ oder wählen Sie „Bluetooth-Kopfhörer“ in der Funktion „Uhreneinstellungen“ aus. 3. Wählen Sie das Headset auf der Uhr aus, um die Kopplung erfolgreich durchzuführen.
