Exercice 7.5: recherche dichotomique Terminé

Consigne

Ecrivez l'algorithme qui recherche un mot saisi au clavier dans un dictionnaire. Le dictionnaire est supposé être codé
dans un tableau préalablement rempli et trié.

Pseudo code

dictionnary un TABLEAU
start, middle, end des NUMERIQUES
wordFound un BOOLEEN

DEBUT
    dictionnary = ["Beaucoup de mot trié"]
    start = 0
    middle
    end = ( dictionnary.length - 1 )
    wordFound = false

    ECRIRE "Entrez un mot à rechercher dans le dictionnaire"
    LIRE searchedWord

    TANT QUE (wordFound != true && start <= end)

        middle = ( start + end ) // 2
        
        SI (dictionnary[middle] === searchedWord) ALORS
            searchedWord = true
        SINON SI (dictionnary[middle] > searchedWord) ALORS
            end = middle - 1
        SINON SI () ALORS
            start = middle + 1
        FIN SI

    FIN TANT QUE

    SI (searchedWord) ALORS
        ECRIRE "Trouvé"
    SINON
        ECRIRE "Inconnu"
    FIN SI
FIN

Conversion

async function javascript() {
    let output = document.querySelector('.response-displayer > .codeblock > pre#javascript');
        output.classList.add('show');
    let nSearchedWord = document.querySelector('input[name="searched"]');

    // Just load an array of french words list from JSON file. And AWAIT IT !
    let dictionnary = await $.getJSON("scripts/153/francais.json", function(json) {
        return json;
    });

    let start = 0;
    let middle;
    let end = ( dictionnary.length - 1 );
    let wordFound = false;

    while (wordFound != true && start <= end)
    {
        // Divide dictionnary array by 2
        middle = Math.floor( ( start + end ) / 2 );

        if (dictionnary[middle] == nSearchedWord.value) {
            wordFound = true;
        }
        else if (dictionnary[middle] > nSearchedWord.value) {
            // First half of the array [0 to (arrayLength // 2)]
            end = middle - 1;
        }
        else {
            // Second half of the array [(arrayLength // 2) to arrayLength]
            start = middle + 1;
        }
    }

    output.innerHTML = '[JS]: Le mot "' + nSearchedWord.value + '" est inconnu dans le dictionnaire.';
    nSearchedWord.placeholder = "Cherchez un mot existant dans le dictionnaire";
    nSearchedWord.style.border = "2px solid red";

    if (wordFound) {
        output.innerHTML = '[JS]: Le mot "' + nSearchedWord.value + '" a été trouvé dans le dictionnaire.';
        nSearchedWord.placeholder = "Cherchez un autre mot dans le dictionnaire";
        nSearchedWord.style.border = "2px solid green";
    }

    nSearchedWord.value = "";
}
async function jquery() {
    $('.response-displayer > .codeblock > pre').removeClass('show')
    let $output = $('.response-displayer > .codeblock > pre#jquery').addClass('show')
    let $nSearchedWord = $('input[name="searched"]');

    // Just load an array of french words list from JSON file. And AWAIT IT !
    let dictionnary = await $.getJSON("scripts/153/francais.json", function(json) {
        return json;
    });

    let start = 0;
    let middle;
    let end = ( dictionnary.length - 1 );
    let wordFound = false;

    while (wordFound != true && start <= end)
    {
        // Divide dictionnary array by 2
        middle = Math.floor( ( start + end ) / 2 );

        if (dictionnary[middle] == $nSearchedWord.val()) {
            wordFound = true;
        }
        else if (dictionnary[middle] > $nSearchedWord.val()) {
            // First half of the array [0 to (arrayLength // 2)]
            end = middle - 1;
        }
        else {
            // Second half of the array [(arrayLength // 2) to arrayLength]
            start = middle + 1;
        }
    }

    $output.html('[jQuery]: Le mot "' + $nSearchedWord.val() + '" est inconnu dans le dictionnaire.');
    $nSearchedWord.attr("placeholder", "Cherchez un mot existant dans le dictionnaire");
    $nSearchedWord.css("border", "2px solid red")

    if (wordFound) {
        $output.html('[jQuery]: Le mot "' + $nSearchedWord.val() + '" a été trouvé dans le dictionnaire.');
        $nSearchedWord.attr("placeholder", "Cherchez un autre mot dans le dictionnaire");
        $nSearchedWord.css("border", "2px solid green")
    }

    $nSearchedWord.val("");
}
<?php
// Load my dictionnary from a file (JSON)
$dictionnary = file_get_contents("scripts/153/francais.json");
$dictionnary = json_decode($dictionnary);

$start = 0;
$middle;
$end = ( count($dictionnary) - 1 );
$wordFound = false;

while($wordFound != true && $start <= $end) {
    $middle = floor( ( $start + $end ) / 2 );

    if ($dictionnary[$middle] === $_POST['searched']) {
        $wordFound = true;
    }
    elseif ($dictionnary[$middle] > $_POST['searched']) {
        $end = $middle - 1;
    } else {
        $start = $middle + 1;
    }
}

if ($wordFound) {
    echo "Trouvé";
} else {
    echo "Inconnu";
}

$_POST['searched'] = "";

Choisissez un language:

Entrez les valeurs nécessaires:

Résultat du code

Le résultat s'affichera après l'exécution du code.