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

Recherche de tableaux bidimensionnels en JavaScript (exemple de code)

不言
不言avant
2019-01-07 09:36:546651parcourir

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

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);
      }
    }

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);
        }
    }

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer