Maison > interface Web > js tutoriel > Recherche de tableaux bidimensionnels en JavaScript (exemple de code)

Recherche de tableaux bidimensionnels en JavaScript (exemple de code)

不言
Libérer: 2019-01-07 10:17:21
avant
6708 Les gens l'ont consulté

Le contenu de cet article concerne la recherche de tableaux bidimensionnels en JavaScript (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Dans un tableau à deux dimensions (chaque tableau à une dimension a la même longueur), chaque ligne est triée par ordre croissant de gauche à droite, et chaque colonne est triée par ordre croissant de haut en bas. en bas. Veuillez compléter une fonction, saisir un tel tableau bidimensionnel et un entier, et déterminer si le tableau contient l'entier.

Idée de base

Le tableau bidimensionnel est ordonné, tel que les données suivantes :

1 2 3
4 5 6
7 8 9
Copier après la connexion

Vous pouvez utiliser directement les nombres dans le coin inférieur gauche pour lancer la recherche :

Supérieur à : Comparer et remonter

Inférieur à : Comparer et décaler vers la droite

Idée de code

Traitez le tableau bidimensionnel comme un plan Système de coordonnées

démarre la comparaison à partir du coin inférieur gauche (0, arr.length-1) :

la valeur cible est supérieur à la valeur de coordonnée ---x coordonnée +1

la valeur cible est inférieure à la valeur de coordonnée ---y coordonnée-1

Remarque :

Dans le mode bidimensionnel tableau arri,

j représente la coordonnée x

i représente la coordonnée y

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);
      }
    }
Copier après la connexion

Extension : recherche binaire

La condition de la recherche binaire est qu'elle doit être dans l'ordre.

est comparé à la valeur médiane du tableau linéaire Si elle est petite, continuez à rechercher dans la petite séquence, et ainsi de suite de manière récursive jusqu'à ce que la même valeur soit trouvée.

    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);
        }
    }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal