Heim > Web-Frontend > js-Tutorial > Durchsuchen zweidimensionaler Arrays in JavaScript (Codebeispiel)

Durchsuchen zweidimensionaler Arrays in JavaScript (Codebeispiel)

不言
Freigeben: 2019-01-07 10:17:21
nach vorne
6703 Leute haben es durchsucht

In diesem Artikel geht es um die Suche nach zweidimensionalen Arrays in JavaScript (Codebeispiele). Ich hoffe, dass er für Freunde hilfreich ist.

In einem zweidimensionalen Array (jedes eindimensionale Array hat die gleiche Länge) wird jede Zeile in aufsteigender Reihenfolge von links nach rechts und jede Spalte in aufsteigender Reihenfolge von oben nach sortiert unten. Sortieren. Bitte vervollständigen Sie eine Funktion, geben Sie ein solches zweidimensionales Array und eine Ganzzahl ein und bestimmen Sie, ob das Array die Ganzzahl enthält.

Grundidee

Das zweidimensionale Array ist geordnet, beispielsweise die folgenden Daten:

1 2 3
4 5 6
7 8 9
Nach dem Login kopieren

Sie können die Zahlen unten direkt verwenden linke Ecke, um mit der Suche zu beginnen:

Größer als: Vergleichen und nach oben verschieben

Kleiner als: Vergleichen und nach rechts verschieben

Code-Idee

Behandeln Sie das zweidimensionale Array als ein ebenes Koordinatensystem

Beginnen Sie den Vergleich in der unteren linken Ecke (0, arr.length-1):

Der Zielwert ist größer als der Koordinatenwert ---x-Koordinate +1

Der Zielwert ist kleiner als der Koordinatenwert ---y-Koordinate-1

Hinweis:

In den beiden -dimensionales Array arri,

j stellt die x-Koordinate dar

i stellt die y-Koordinate dar

Code

    function Find(target, array) {
      let i = array.length - 1; // y坐标
      let j = 0; // x坐标
      return compare(target, array, i, j);
    }

    function compare(target, array, i, j) {
      if (array[i] === undefined || array[i][j] === undefined) {
        return false;
      }
      const temp = array[i][j];
      if (target === temp) {
        return true;
      }
      else if (target > temp) {
        return compare(target, array, i, j+1);
      }
      else if (target < temp) {
        return compare(target, array, i-1, j);
      }
    }
Nach dem Login kopieren

Erweiterung: Binäre Suche

Die Bedingung der binären Suche muss in Ordnung sein.

wird mit dem Mittelpunktwert der linearen Tabelle verglichen. Wenn er klein ist, wird die Suche in der kleinen Sequenz fortgesetzt und so weiter, bis derselbe Wert gefunden wird.

    function binarySearch(data, arr, start, end) {
        if (start > end) {
            return -1;
        }
        var mid = Math.floor((end + start) / 2);
        if (data == arr[mid]) {
            return mid;
        } else if (data < arr[mid]) {
            return binarySearch(data, arr, start, mid - 1);
        } else {
            return binarySearch(data, arr, mid + 1, end);
        }
    }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDurchsuchen zweidimensionaler Arrays in JavaScript (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage