Élément minimum dans un vecteur trié et roté

C++C++Beginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons créer un programme C++ pour trouver l'élément minimum dans un vecteur trié et roté. Un vecteur trié peut être roté autour d'un élément pivot inconnu pour vous à l'avance.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/BasicsGroup -.-> cpp/variables("Variables") cpp/ControlFlowGroup -.-> cpp/conditions("Conditions") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/StandardLibraryGroup -.-> cpp/standard_containers("Standard Containers") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/variables -.-> lab-96134{{"Élément minimum dans un vecteur trié et roté"}} cpp/conditions -.-> lab-96134{{"Élément minimum dans un vecteur trié et roté"}} cpp/for_loop -.-> lab-96134{{"Élément minimum dans un vecteur trié et roté"}} cpp/function_parameters -.-> lab-96134{{"Élément minimum dans un vecteur trié et roté"}} cpp/output -.-> lab-96134{{"Élément minimum dans un vecteur trié et roté"}} cpp/standard_containers -.-> lab-96134{{"Élément minimum dans un vecteur trié et roté"}} cpp/code_formatting -.-> lab-96134{{"Élément minimum dans un vecteur trié et roté"}} end

Inclure les bibliothèques nécessaires et déclarer l'espace de noms

Tout d'abord, nous devons inclure les bibliothèques nécessaires et déclarer l'espace de noms. Ce code sera écrit dans le fichier ~/project/main.cpp. Le code complet pour l'Étape 1 est donné ci-dessous :

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

Créer une fonction pour trouver l'élément minimum

Nous allons créer une fonction nommée findMin pour trouver l'élément minimum dans le vecteur trié et roté. Dans cette fonction, nous allons parcourir chaque élément du vecteur et vérifier si cet élément est l'élément minimum. La logique pour vérifier si l'élément est minimum est expliquée dans les commentaires du bloc de code. Le code complet pour l'Étape 2 est donné ci-dessous :

int findMin(vector<int> &m)
{
    int i;
    int n = m.size();
    for (i = 0; i < n; i++)
    {
        if (i == 0)
        {
            // vérifier le premier élément
            if (m[i] < m[n - 1] && m[i] < m[1])
                break;
        }
        else
        {
            // vérifier tous les autres éléments
            if (m[i] < m[i - 1] && m[i] < m[(i + 1) % n])
                break;
        }
    }
    return m[i % n];
}

Écrire la fonction principale pour tester le code

Dans la fonction principale, nous allons créer un vecteur nommé v et l'initialiser avec certains éléments. Ensuite, nous appellerons la fonction findMin pour trouver l'élément minimum dans le vecteur. Enfin, nous afficherons l'élément minimum. Le code complet pour l'Étape 3 est donné ci-dessous :

int main()
{
    vector<int> v = {4, 5, 6, 7, 1, 3, 2};
    int n = v.size();
    int minimum = 0;
    cout << "Les éléments du vecteur donné sont : ";
    for (int i = 0; i < n; i++)
    {
        cout << v[i] << " ";
    }
    minimum = findMin(v);
    cout << "\n\nL'élément minimum dans le vecteur donné est : " << minimum << endl;
    return 0;
}

Compiler et exécuter le code

Dans une fenêtre de terminal, utilisez la commande cd pour naviguer jusqu'au répertoire où se trouve le fichier main.cpp. Ensuite, compilez le code à l'aide de la commande suivante :

g++ main.cpp -o main

Si aucun message d'erreur n'est affiché, exécutez l'exécutable à l'aide de la commande suivante :

./main

Vous devriez voir la sortie suivante :

Les éléments du vecteur donné sont : 4 5 6 7 1 3 2
L'élément minimum dans le vecteur donné est : 1

Cette sortie confirme que notre code a trouvé l'élément minimum correct dans le vecteur.

Sommaire

Dans ce laboratoire, nous avons créé un programme C++ pour trouver l'élément minimum dans un vecteur trié et roté. Nous avons atteint cela en parcourant chaque élément du vecteur et en vérifiant si cet élément est l'élément minimum. Enfin, nous avons affiché l'élément minimum à la console. Nous espérons que vous avez trouvé ce laboratoire utile dans votre parcours d'apprentissage de la programmation.