Heim Web-Frontend js-Tutorial js grundlegender Algorithmus: Blasensortierung, binäre Suche

js grundlegender Algorithmus: Blasensortierung, binäre Suche

Oct 08, 2016 pm 05:51 PM

Wissenserweiterung:

Zeitkomplexität: Die Zeitkomplexität eines Algorithmus ist eine Funktion, die die Laufzeit des Algorithmus beschreibt. Je geringer die Zeitkomplexität, desto höher die Effizienz.

Selbstverständnis: Die Zeitkomplexität eines Algorithmus wird durch mehrmalige Ausführung bestimmt. Wenn er n-mal ausgeführt wird, beträgt die Zeitkomplexität O(n).

1. Blasensortierung

Analyse: 1. Vergleichen Sie zwei benachbarte Elemente, wenn das erstere größer als das letztere ist.

2. In der ersten Runde sollte das letzte Element das größte sein.

3. Vergleichen Sie zwei benachbarte Elemente gemäß Schritt 1. Da das letzte Element zu diesem Zeitpunkt bereits das größte ist, besteht keine Notwendigkeit, das letzte Element zu vergleichen.

 

function sort(elements){
 for(var i=0;i<elements.length-1;i++){
  for(var j=0;j<elements.length-i-1;j++){
   if(elements[j]>elements[j+1]){
    var swap=elements[j];
    elements[j]=elements[j+1];
    elements[j+1]=swap;
   }
  }
 }
}
 
var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8];
console.log(&#39;before: &#39; + elements);
sort(elements);
console.log(&#39; after: &#39; + elements);
Nach dem Login kopieren

2. Schnellsortierung

Analyse: Die Daten werden im ersten Sortierdurchgang in zwei Teile geteilt Teil ist kleiner als alle Daten im anderen Teil. Rufen Sie es dann rekursiv auf und führen Sie eine schnelle Sortierung auf beiden Seiten durch.

function  quickSort(elements) {
 
  if (elements.length <= 1) { return elements; }
 
    var pivotIndex = Math.floor(elements.length / 2);
 
    var pivot = elements.splice(pivotIndex, 1)[0];
 
 
  var left = [];
 
  var right = [];
 
  for (var i = 0; i < elements.length; i++){
 
    if (elements[i] < pivot) {
 
      left.push(elements[i]);
 
    } else {
 
      right.push(elements[i]);
 
    }
 
  }
 
  return quickSort(left).concat([pivot], quickSort(right));
 
};
 
var elements=[5,6,2,1,3,8,7,1.2,5.5,4.5];
alert(quickSort(elements));
Nach dem Login kopieren

3. Einfügungssortierung

Analyse:

(1) Ab dem ersten Element kann davon ausgegangen werden, dass das Element sortiert wurde

(2) Nehmen Sie das nächste Element heraus und scannen Sie es von hinten nach vorne in der sortierten Elementsequenz

(3) Wenn das Element (sortiert) größer als das neue Element ist, verschieben Sie das Element an die nächste Position

(4) Wiederholen Sie Schritt 3, bis Sie die Position gefunden haben, an der das sortierte Element kleiner oder gleich dem neuen Element ist

(5) Fügen Sie das neue Element an der nächsten Position ein

(6) Wiederholen Sie Schritt 2

insertSort: function(elements) {

    var i = 1,
    j, step, key, len = elements.length;

    for (; i < len; i++) {

        step = j = i;
        key = elements[j];

        while (--j > -1) {
            if (elements[j] > key) {
                elements[j + 1] = elements[j];
            } else {
                break;
            }
        }

        elements[j + 1] = key;
    }

    return elements;
}
Nach dem Login kopieren

2. Binäre Suche

Analyse: Die binäre Suche ist ebenfalls eine halbe Suche. Finden Sie zunächst einen Mittelwert, indem Sie ihn mit dem Mittelwert vergleichen. Der größere Wert wird platziert und der kleinere Wert wird links platziert. Suchen Sie dann den Mittelwert auf beiden Seiten und führen Sie den obigen Vorgang fort, bis Sie die Position gefunden haben.

(1) Rekursive Methode

function binarySearch(data,item,start,end){
    var end=end || data.length-1;
    var start=start || 0;
    var m=Math.floor((start+end)/2);
    if(item==data[m]){
        return m;
    }else if(item<data[m]){
        return binarySearch(data,item,start,m-1) //递归调用
    }else{
        return binarySearch(data,item,m+1,end);
    }
    return false;
}

    var arr=[34,12,5,123,2,745,32,4];

    binary(arr,5);
Nach dem Login kopieren

(2) Nicht-rekursive Methode

function binarySearch(data, item){
    var h = data.length - 1,
        l = 0;
    while(l <= h){
        var m = Math.floor((h + l) / 2);
        if(data[m] == item){
            return m;
        }
        if(item > data[m]){
            l = m + 1;
        }else{
            h = m - 1;
        }
    }
  
    return false;
}
var arr=[34,12,5,123,2,745,32,4];
binarySearch(arr,5);
Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So schreiben Sie einen binären Suchalgorithmus mit C# So schreiben Sie einen binären Suchalgorithmus mit C# Sep 19, 2023 pm 12:42 PM

So schreiben Sie mit C# einen binären Suchalgorithmus. Er findet die Position eines bestimmten Elements in einem geordneten Array mit einer Zeitkomplexität von O(logN). In C# können wir mit den folgenden Schritten einen binären Suchalgorithmus schreiben. Schritt 1: Daten vorbereiten Zuerst müssen wir ein sortiertes Array als Zieldaten für die Suche vorbereiten. Angenommen, wir möchten die Position eines bestimmten Elements in einem Array ermitteln. int[]data={1,3,5,7,9,11,13

In C-Sprache geschriebenes binäres Suchprogramm, das pthread für die Multithread-Verarbeitung verwendet In C-Sprache geschriebenes binäres Suchprogramm, das pthread für die Multithread-Verarbeitung verwendet Aug 26, 2023 pm 12:45 PM

Wir wissen, dass die binäre Suchmethode der am besten geeignete und effektivste Sortieralgorithmus ist. Dieser Algorithmus funktioniert mit sortierten Sequenzen. Der Algorithmus ist einfach: Er findet einfach das Element in der Mitte, teilt dann die Liste in zwei Teile und bewegt sich zur linken oder rechten Unterliste. Wir kennen seinen Algorithmus. Jetzt werden wir sehen, wie man die binäre Suchtechnik in einer Multithread-Umgebung verwendet. Die Anzahl der Threads hängt von der Anzahl der im System vorhandenen Kerne ab. Werfen wir einen Blick auf den Code, um eine Vorstellung davon zu bekommen. Beispiel#include<iostream>#defineMAX16#defineMAX_THREAD4usingnamespacestd;//placearr,keyandothervariabl

Wie finde ich das kleinste Element in einem Array mithilfe des binären Suchalgorithmus in C-Sprache? Wie finde ich das kleinste Element in einem Array mithilfe des binären Suchalgorithmus in C-Sprache? Aug 25, 2023 pm 08:37 PM

Die Programmiersprache C bietet zwei Suchtechniken. Sie lauten wie folgt: Lineare Suche Binäre Suche Binäre Suche Diese Methode eignet sich nur für geordnete Listen. Die angegebene Liste ist in zwei gleiche Teile unterteilt. Das angegebene Schlüsselwort wird mit dem mittleren Element der Liste verglichen. Hier können drei Dinge passieren: Wenn das mittlere Element mit dem Schlüsselwort übereinstimmt, wird die Suche hier erfolgreich beendet. Wenn das mittlere Element größer als das Schlüsselwort ist, findet die Suche in der linken Partition statt. Wenn das mittlere Element kleiner als das Schlüsselwort ist, wird die Suche in der rechten Partition durchgeführt. Eingabe (i/p) – unsortierte Liste von Elementen, Schlüsselwörtern. Ausgabe (o/p)-success-if failed to find the keyword-otherwise key=20mid=(low+high)/2 Programm 1 Das Folgende ist die Verwendung der binären Suche in

So implementieren Sie einen binären Suchalgorithmus mit Java So implementieren Sie einen binären Suchalgorithmus mit Java Sep 19, 2023 pm 12:57 PM

So implementieren Sie einen binären Suchalgorithmus mit Java. Der binäre Suchalgorithmus ist eine effiziente Suchmethode, die für sortierte Arrays geeignet ist. Seine Grundidee besteht darin, den Suchbereich kontinuierlich einzuschränken, den Suchwert mit den Elementen in der Mitte des Arrays zu vergleichen und basierend auf dem Vergleichsergebnis zu entscheiden, ob die Suche in der linken oder rechten Hälfte fortgesetzt werden soll, bis das Zielelement gefunden wird oder Der Suchbereich wird auf leer reduziert. Im Folgenden stellen wir detailliert vor, wie der binäre Suchalgorithmus in Java implementiert wird. Schritt 1: Implementieren Sie die binäre Suchmethode publicclassBinarySearch

Wie implementiert man einen binären Suchalgorithmus mit Python? Wie implementiert man einen binären Suchalgorithmus mit Python? Sep 20, 2023 pm 01:24 PM

Wie implementiert man einen binären Suchalgorithmus mit Python? Der binäre Suchalgorithmus, auch binärer Suchalgorithmus genannt, ist ein effizienter Suchalgorithmus. Es funktioniert bei geordneten Arrays oder Listen und grenzt die Suche ein, indem der Zielwert mit Elementen in der Mitte des Arrays verglichen wird. Im Folgenden wird die Implementierung des binären Suchalgorithmus in Python vorgestellt und spezifische Codebeispiele bereitgestellt. Algorithmusidee: Vergleichen Sie den Zielwert mit dem Element in der Mitte des Arrays. Wenn sie gleich sind, geben Sie die Elementposition zurück, wenn der Zielwert größer ist als das Element in der Mitte

Java-Programm zum Finden der Kubikwurzel einer Zahl mithilfe eines binären Suchalgorithmus Java-Programm zum Finden der Kubikwurzel einer Zahl mithilfe eines binären Suchalgorithmus Aug 28, 2023 pm 01:33 PM

Eine Kubikwurzel ist ein ganzzahliger Wert, der dreimal hintereinander mit sich selbst multipliziert den ursprünglichen Wert ergibt. In diesem Artikel schreiben wir ein Java-Programm, das die binäre Suche verwendet, um die Kubikwurzel einer Zahl zu finden. Das Finden der Kubikwurzel einer Zahl ist eine Anwendung des binären Suchalgorithmus. In diesem Artikel besprechen wir ausführlich, wie man die binäre Suche zur Berechnung von Kubikwurzeln verwendet. Eingabe-Ausgabe-Beispiel Beispiel 1: Eingabe: 64 Ausgabe: 4 Die Kubikwurzel von 64 ist beispielsweise 4 und die Ausgabe ist 4. Beispiel 2: Eingabe: 216 Ausgabe: 6 Beispielsweise ist die Kubikwurzel von 216 6 und die Ausgabe ist 6. Binäre Suche Die binäre Suche ist ein Algorithmus zum Suchen von Elementen (d. h. Schlüsseln in einem sortierten Array). Binärer Algorithmus funktioniert

Verwenden Sie in einem C-Programm den binären Suchalgorithmus, um rationale Zahlen zu suchen, ohne Gleitkomma-Arithmetik zu verwenden Verwenden Sie in einem C-Programm den binären Suchalgorithmus, um rationale Zahlen zu suchen, ohne Gleitkomma-Arithmetik zu verwenden Aug 27, 2023 pm 06:05 PM

In diesem Problem erhalten wir eine sortierte Reihe rationaler Zahlen. Wir müssen einen binären Suchalgorithmus verwenden, um nach einem bestimmten Element dieses Arrays rationaler Zahlen zu suchen, ohne Gleitkommaoperationen zu verwenden. Rationale Zahlen sind Zahlen, die in der Form p/q ausgedrückt werden, wobei p und q beide ganze Zahlen sind. Zum Beispiel ⅔, ⅕. Die binäre Suche ist eine Suchtechnik, die Elemente findet, indem sie in der Mitte eines Arrays sucht. Wird verwendet, um Elemente in einem sortierten Array rationaler Zahlen mithilfe der binären Suche zu finden, wobei Gleitkommaoperationen nicht zulässig sind. Wir vergleichen Zähler und Nenner, um herauszufinden, welches Element größer ist bzw. welches Element dasjenige ist, das gefunden werden soll. Beispiel: Erstellen wir hierfür ein Programm, #include<stdio.h>structRational{ &am

Analyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden? Analyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden? Sep 19, 2023 pm 01:14 PM

Analyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden? Übersicht: Der binäre Suchalgorithmus ist ein effizienter Suchalgorithmus, der zum Auffinden bestimmter Elemente in einem geordneten Array geeignet ist. In diesem Artikel wird das Prinzip des binären Suchalgorithmus ausführlich vorgestellt und PHP-Codebeispiele gegeben. Prinzip: Der binäre Suchalgorithmus findet das Zielelement schnell, indem er den Suchbereich wiederholt um die Hälfte reduziert. Der Vorgang ist wie folgt: Grenzen Sie zunächst den Suchbereich auf den Anfang und das Ende des Arrays ein. Berechnen Sie dann den Index des mittleren Elements und vergleichen Sie ihn mit dem Zielelement.

See all articles