ALGORITHME DE RECHERCHE

Documents pareils
Architecture des Systèmes d Information Architecture des Systèmes d Information

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

1 Recherche en table par balayage

Algorithmique I. Algorithmique I p.1/??

Recherche dans un tableau

Algorithmique et structures de données I

Définitions. Numéro à préciser. (Durée : )

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation


Organigramme / Algorigramme Dossier élève 1 SI

Algorithmique et Programmation

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Quelques Algorithmes simples

4. Les structures de données statiques

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Algorithmes récursifs

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Jean-Philippe Préaux

Algorithmique et Programmation, IMA

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Bases de programmation. Cours 5. Structurer les données

Algorithmique, Structures de données et langage C

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation C++ (débutant)/instructions for, while et do...while

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Rappels sur les suites - Algorithme

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Cours d Informatique

Latitude N Longitude E Altitude 376 m RÉSUMÉ MENSUEL DU TEMPS DE JANVIER 2014

4D v11 SQL Release 5 (11.5) ADDENDUM

Adama MBODJI MBODJ.SYSTEM

Java Licence Professionnelle CISII,

Plan du cours Cours théoriques. 29 septembre 2014

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Limites finies en un point

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Bases de données documentaires et distribuées Cours NFE04

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Les deux points les plus proches

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Continuité et dérivabilité d une fonction

CORRECTION EXERCICES ALGORITHME 1

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Initiation à la programmation en Python

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

CHAPITRE V. Recherche et tri

Algorithme. Table des matières

STAGE IREM 0- Premiers pas en Python

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Chap III : Les tableaux

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

MIS 102 Initiation à l Informatique

Gestion Projet. Cours 3. Le cycle de vie

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Programmer en JAVA. par Tama

Chapitre 4 : Édition de fichiers texte - Vi

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Travaux Dirigés n 1 : chaînes de caractères

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

V- Manipulations de nombres en binaire

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Calcul Formel et Numérique, Partie I

Conventions d écriture et outils de mise au point

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Initiation à LabView : Les exemples d applications :

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Introduction à MATLAB R

Les arbres binaires de recherche

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Notions fondamentales du langage C# Version 1.0

Algorithmique avec Algobox

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com

UE C avancé cours 1: introduction et révisions

Principes des langages de programmation INF 321. Eric Goubault

Équations non linéaires

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Évaluation et optimisation de requêtes

Guide d installation CLX.PayMaker Office (3PC)

INF601 : Algorithme et Structure de données

Chapitre 7. Récurrences

ARBRES BINAIRES DE RECHERCHE

Cours Informatique Master STEP

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Cours d Algorithmique et de Langage C v 3.0

Créer vos données sources avec OpenOffice, adieu Excel

Transcription:

PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, Tableaux, opérateurs Entrées sorties de base Structures de contrôle Algorithmes de recherche Algorithmes de Tri Insertion-Fusion Les pointeurs Procédures et fonctions les types composés Allocation dynamique Listes Chaînées 101 ALGORITHME DE RECHERCHE Objectif : Rechercher une information dans un tableau Méthode : séquentielle Soit T un tableau de N éléments et val l élément cherché parcours du tableau à partir du premier élément (T[0]) Arrêt quand élément trouvé ou si fin de tableau (T[n-1]) Complexité : linéaire de l ordre de n. Pire cas : parcourt de tout le tableau 102 1

RECHERCHE SÉQUENTIELLE Algorithme recherche_sequentielle {Recherche le premier indice où se trouve la valeur val parmi les N données du tableau tab; affiche l indice si la valeur est trouvée. } variables : T [0, N-1], val entier n, val, indice : entier indice 0 tant que ( val <> T[indice] && indice < N-1) faire indice indice + 1 ftq si T[indice] = val alors 7 1 15 8 2 afficher( " l'élément se trouve en :» indice); afficher( «Elément non présent " ); 103 ALGORITHME DE RECHERCHE Objectif : Rechercher une information dans un tableau trié Méthode : dichotomique ou «diviser pour régner» Soit T un tableau de N éléments et val l élément cherché T est trié Sinon effectuer un prétraitement de tri. Comparer val avec l élément u milieu du tableau T. Si c est le même => trouvé on recommence sur la première moitié ou la seconde selon que val est < à valmid ou val > valmid Arrêt quand élément trouvé ou si fin de tableau (T[indice-1]) Complexité : T(n) nombre d opérations sur un tableau de taille n T(n) satisfait l équation de récurrence T(n) = T(n/2)+1 104 2

RECHERCHE DICHOTOMIQUE Algorithme recherche_dichotomique {Recherche le premier indice où se trouve la valeur val en utilisant la stratégie diviser pour régner } variables T [0, N-1], val entier lnf, Sup, N, Mi : entier Saisir (val) Inf 0 Sup N-1 Mi (Inf + Sup)/2 tant que ( val <> T[Mi] && Inf <= Sup) faire si val < T[Mi] alors Sup = Mid - 1 Inf = Mid + 1 Mi (Inf + Sup)/2 ftq si T[Mi] = val alors afficher( " l'élément se trouve en :» Mi); afficher( «Elément non présent " ); 105 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, Tableaux, opérateurs Entrées sorties de base Structures de contrôle Algorithmes de recherche Algorithmes de Tri Insertion-Fusion Les pointeurs Procédures et fonctions les types composés Allocation dynamique Listes Chaînées 106 3

ALGORITHMES DE TRI Objectif : Etant donné une suite de N nombres de la ranger par ordre croissant (ou décroissant) Différents algorithmes Tri par sélection Tri se fait en espace constant Peu économe en temps (2 boucles for imbriquées ) Boucle interne fait N-1 opérations Boucle externe fait N-1 à itération 1, N-2 (itération 2) Complexité 2*(N-1)+(N-2) +(N-3) + 1 = (N+1)*N+N! N 2 Tri à bulles Peu économe en temps (2 boucles for imbriquées ) Complexité N 2 Tri rapide Econome en temps Complexité N*Log(N) Algorithme récursif 107 ALGORITHME DE TRI Objectif : Etant donné une suite de N nombres de la ranger par ordre croissant (ou décroissant) Méthode : Tri par sélection Soit T un tableau de N éléments Rechercher le plus petit élément parmi les N et on l échange à la fin avec le 1 er 7 8 9 2 0 Puis recherche du plus petit parmi les N-1 éléments restant et échange avec le 2 ème 0 8 9 2 7 parmi N-+1 éléments restants échange avec le K ième 0 2 9 8 7 0 2 7 8 9 108 4

TRI PAR SELECTION Algorithme tri_selection { Ranger par ordre croissant (ou décroissant) une suite de N nombres rangés dans un tableau T. } variables tab : tableau [0, N-1] de entier N, i, j, indicemin, ValMin : entier pour i = 0 à N-2 faire 7 8 9 2 0 indicemin i ValMin T[i] pour j = i +1 à N-1 faire si T[j] < ValMin alors i=0 i=1 indicemin j ValMin T[j] indicemin=0 ValMin=7 indicemin=3 ValMin=2 T[indiceMin] T[i] { Echange des deux valeurs } IndiceMin=4 ValMin=0 T[i] ValMin T[0]=0 T[4]=7 109 7 8 9 2 0 j=1 j=2 j=3 j=4 ALGORITHME DE TRI Objectif : faire remonter les plus grandes valeurs en haut de tableau Méthode : Tri à bulle Soit T un tableau de N éléments Comparer 1 er élément avec 2 ème. Si 1 er >2 ème, échanger les deux éléments 5 1 4 2 8 Comparer 2 ème élément avec 3 ème. Si 2 er >3 ème, échanger les deux éléments 1 5 4 2 8 comparer N-2 ième avec N-1 ième. Si N-2 ième > N-1 ième, échanger les deux éléments. 1 4 2 5 8 Recommencer à partir du début tant que vous avez opéré au moins à un échange 110 5

TRI À BULLE Algorithme tri_à_bulle { faire remonter les plus grandes valeurs en haut d un tableau T de N éléments. } variables tab : tableau [0, N-1] de entier N, i, j, temp : entier nouvel_echange : booleen répéter nouvel_echange faux pour i = 0 à N-1 faire si T[ i ] > T[i+1] alors temp T[ i +1] T[i+1 ] T[ i ] T[ i ] temp nouvel_echange vrai tant que nouvel_echange ==vrai 111 ALGORITHME D INSERTION POSITION P Objectif : Ajouter un élément dans un tableau trié ou pas. Insertion n est possible que si il reste de la place dans le tableau. L Insertion est un décalage à droite des éléments du tableau Méthode : Insertion Soit T un tableau de taille de N éléments, On insère un élément V à un position p Variable positionnée en fin de tableau 5 1 4 2 8 p Copie de T[] dans T[+1] tant que >=P Qd =p ranger la valeur v en T[] Incrémenter N 5 1 4 2 8 8 p 5 1 4 2 2 8 p 5 1 4 4 2 8 p 5 1 v 4 2 8 p 112 6

INSERTION À UNE POSITION P Algorithme INSERTION_POSITION_P { Insérer une valeur v à une position p dans un tableau T de N éléments et de taille S } Constantes S= 20 variables T : tableau [0, S-1] de entier N, p, v, : entier { Code d initialisation des N éléments du tableau } Afficher («entrez val à insérer et position p} Saisir (p); Saisir(v); si N < S alors pour = N-1 à p pas -1 faire T[+1] T[] T[p] v N N+1 Afficher («Insertion impossible») 113 ALGORITHME D INSERTION DANS TABLEAU TRIÉ Objectif : Ajouter un élément dans un tableau trié ou pas. Insertion n est possible que si il reste de la place dans le tableau. L Insertion est un décalage à droite des éléments du tableau Méthode : Insertion Soit T un tableau de taille de N éléments triés, On insère un élément V Variable positionnée en fin de tableau Copie de T[] dans T[+1] tant que >=0 && V>T[] Qd T[]<v ranger la valeur v en T[+1] Incrémenter N 1 2 4 5 8 1 2 4 5 8 8 1 2 4 5 5 8 1 2 4 4 5 8 1 2 v 4 5 8 114 7

INSERTION DANS UN TABLEAU TRIÉ Algorithme INSERTION_V_dans_Tableau-Trié { Insérer une valeur v à une position p dans un tableau T de N éléments et de taille S rangé par ordre croissant} Constantes S= 20 variables T : tableau [0, S-1] de entier N, p, v, : entier { Code d initialisation des N éléments du tableau } Afficher («entrez val à insérer} Saisir(v); si N < S alors tant que >= 0 && T[] > val faire T[+1] T[] -1 T[+1] v N N+1 Afficher («Insertion impossible») 115 ALGORITHME DE SUPPRESSION POSITION P Objectif : Supprimer un élément dans un tableau trié ou pas. La suppression est un décalage à gauche des éléments du tableau Méthode : Suppression Soit T un tableau de taille de N éléments, On supprime un élément V à un position p Variable positionnée à p+1 5 1 4 2 8 p Copie de T[] dans T[-1] tant que <N Décrémenter N 5 1 2 2 8 p 5 1 2 8 8 p 8

SUPPRESSION À UNE POSITION P Algorithme SUPPRESSION_POSITION_P { Supprimer l élément à une position p dans un tableau T de N éléments et de taille S } Constantes S= 20 variables T : tableau [0, S-1] de entier N, p, v, : entier { Code d initialisation des N éléments du tableau } Afficher («entrez position p de l élément à supprimer») Saisir (p); pour = p+1 à N 1 faire T[-1] T[] N N-1 117 SUPPRESSION D UNE VALEUR V Algorithme SUPPRESSION_VALEUR_V { Supprimer une valeur v dans un tableau T de N éléments et de taille S } variables T : tableau [0, S-1] de entier N, p=0, v, : entier { Code d initialisation des N éléments du tableau } Afficher («entrez la valeur à supprimer») Saisir (v); tant que T[p] <> val && p < N-1 faire p p +1 ftq si T[p] == val alors pour = p+1 à N -1 faire T[-1] T[] N N-1 Afficher («valeur non trouvée») 118 9