Cours d Eléments d Algorithmique. 1 cours magistral le jeudi de 14h à 15h30

Documents pareils
Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

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

1 Recherche en table par balayage

Algorithmes récursifs

Licence Sciences et Technologies Examen janvier 2010

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

TD3: tableaux avancées, première classe et chaînes

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Recherche dans un tableau

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

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)

Introduction au langage C

Quelques algorithmes simples dont l analyse n est pas si simple

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

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

Découverte de Python


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

Cours Informatique Master STEP

Corrigé des TD 1 à 5

Représentation d un entier en base b

Programme Compte bancaire (code)

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

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

Algorithmique et programmation : les bases (VBA) Corrigé

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Plan du cours. Historique du langage Nouveautés de Java 7

CUEEP Département Mathématiques E 821 : Problèmes du premier degré 1/27

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Application 1- VBA : Test de comportements d'investissements

Examen Médian - 1 heure 30

Génie Logiciel avec Ada. 4 février 2013

Algorithmique et Programmation, IMA

Quelques Algorithmes simples

Algorithmique & programmation

OCL - Object Constraint Language

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

MIS 102 Initiation à l Informatique

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

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Cours 1 : La compilation

Propagation sur réseau statique et dynamique

Initiation à la programmation en Python

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

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

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

1.6- Génération de nombres aléatoires

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

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Cours d algorithmique pour la classe de 2nde

C f tracée ci- contre est la représentation graphique d une

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

1. Structure d'un programme FORTRAN 95

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

Algorithmes sur les mots (séquences)

Enseignement secondaire technique

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

Organigramme / Algorigramme Dossier élève 1 SI

Résolution de systèmes linéaires par des méthodes directes

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

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

Cours d initiation à la programmation en C++ Johann Cuenin

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

Cours de Systèmes d Exploitation

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

Introduction à MATLAB R

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

Initiation à l algorithmique

PROJET ALGORITHMIQUE ET PROGRAMMATION II

UML et les Bases de Données

Feuille TD n 1 Exercices d algorithmique éléments de correction

Java Licence Professionnelle CISII,

TRIGONOMETRIE Algorithme : mesure principale

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Algorithmique I. Algorithmique I p.1/??

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

I. Introduction aux fonctions : les fonctions standards

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

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Conventions d écriture et outils de mise au point

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Indications pour une progression au CM1 et au CM2

Programmer en JAVA. par Tama

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

4. Les structures de données statiques

V- Manipulations de nombres en binaire

PROJET 1 : BASE DE DONNÉES REPARTIES

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

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

Transcription:

Cours d Eléments d Algorithmique 1 cours magistral le jeudi de 14h à 15h30

Cours d Eléments d Algorithmique 1 cours magistral le jeudi de 14h à 15h30 La prof d amphi: Anne Micheli anne.micheli@liafa.univ-paris-diderot.fr https://www.irif.univ-paris-diderot.fr/ amicheli/

Cours d Eléments d Algorithmique Les chargés de TDs Antonio Bucciarelli Info 1 mercredi 16h45-18h45 132C Pierre Charbit Info 2 mardi 16h45-18h45 415B Alexandre Vigny Info 3 jeudi 11h00-13h00 411B Juliusz Chroboczek Info 4 lundi 16h45-18h45 515B

Cours d Eléments d Algorithmique 40% de contrôle continu + 60% pour l examen final Partiel

Qu est ce qu un algorithme?

Qu est ce qu un algorithme? Au départ, il y a un problème???

Qu est ce qu un algorithme? Au départ, il y a un problème??? Comment faire un gâteau au chocolat?

Qu est ce qu un algorithme? Au départ, il y a un problème??? Comment faire un gâteau au chocolat? Comment trier dans l ordre croissant une suite de nombres entiers?

Qu est ce qu un algorithme? Au départ, il y a un problème??? Comment faire un gâteau au chocolat? Comment trier dans l ordre croissant une suite de nombres entiers? Comment additionner 2 nombres?

Qu est ce qu un algorithme? Suite finie d instructions qui transforment une donnée d entrée en une donnée de sortie entrée sortie

Qu est ce qu un algorithme? Pour 6 personnes: 200 g de chocolat noir 4 œufs 150 g de sucre 80 g de farine 200 g de beurre entrée sortie mélanger les jaunes d œufs avec... mettre 20 min au four à 180 suite finie d instructions

Qu est ce qu un algorithme? n 1 = 508439 res = 16515804 n 2 = 16007365 entrée sortie commencer par additionner les 2 chiffres des unités... suite finie d instructions

Qu est ce qu un algorithme? La donnée d entrée est appelée instance du problème n 1 = 508439 res = 16515804 n 2 = 16007365 entrée sortie commencer par additionner les 2 chiffres des unités... suite finie d instructions

Qu est ce qu un algorithme? nouvelle instance du problème n 1 = 18 res = 262 n 2 = 244 entrée sortie commencer par additionner les 2 chiffres des unités... suite finie d instructions

Qu est ce qu un algorithme? Un algorithme est dit correct si, pour toute instance du problème, l algorithme s arrête lorsqu il produit la bonne donnée de sortie

Qu est ce qu un algorithme? Un algorithme est dit correct si, pour toute instance du problème, l algorithme s arrête lorsqu il produit la bonne donnée de sortie Exemples de problèmes résolus par l algorithmique: - Accéder rapidement à l information sur internet - Identifier les 100000 gènes de l ADN humaine - Archiver des données telles qu elles occupent le moins de place possible

Écrire un algorithme Il n est pas nécessaire de choisir un langage de programmation

Écrire un algorithme Il n est pas nécessaire de choisir un langage de programmation on ne veut pas dépendre des spécificités d un langage = on écrit en pseudo-code

Écrire un algorithme Il n est pas nécessaire de choisir un langage de programmation on ne veut pas dépendre des spécificités d un langage = on écrit en pseudo-code Affectation x... Fonction mafonction(...)... return... Conditionnelle if... then... else... endif Boucles for i from... to... do... endfor while... do... endwhile

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau Principe: on initialise le minimum à la première entrée du tableau. Puis on parcourt les autres entrées du tableau une à une en mettant à jour le minimum si nécessaire. 6 19 3 7 11 9 2 15 5 min 6

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau Principe: on initialise le minimum à la première entrée du tableau. Puis on parcourt les autres entrées du tableau une à une en mettant à jour le minimum si nécessaire. 6 19 3 7 11 9 2 15 5 min 6

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau Principe: on initialise le minimum à la première entrée du tableau. Puis on parcourt les autres entrées du tableau une à une en mettant à jour le minimum si nécessaire. 6 min 19 3 7 11 9 2 15 5 3

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau Principe: on initialise le minimum à la première entrée du tableau. Puis on parcourt les autres entrées du tableau une à une en mettant à jour le minimum si nécessaire. 6 min 19 3 7 11 9 2 15 5 3

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau Principe: on initialise le minimum à la première entrée du tableau. Puis on parcourt les autres entrées du tableau une à une en mettant à jour le minimum si nécessaire. 6 min 19 3 7 11 9 2 15 5 3

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau Principe: on initialise le minimum à la première entrée du tableau. Puis on parcourt les autres entrées du tableau une à une en mettant à jour le minimum si nécessaire. 6 min 19 3 7 11 9 2 15 5 3

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau Principe: on initialise le minimum à la première entrée du tableau. Puis on parcourt les autres entrées du tableau une à une en mettant à jour le minimum si nécessaire. 6 min 19 3 7 11 9 2 15 5 2

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau Principe: on initialise le minimum à la première entrée du tableau. Puis on parcourt les autres entrées du tableau une à une en mettant à jour le minimum si nécessaire. 6 19 3 7 11 9 2 15 5 min 2

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau Principe: on initialise le minimum à la première entrée du tableau. Puis on parcourt les autres entrées du tableau une à une en mettant à jour le minimum si nécessaire. À la fin du parcours, on obtient le minimum 6 19 3 7 11 9 2 15 5 min 2

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau RechercheMin (tab: un tableau de n entiers) 1 min tab[0] on initialise le minimum à la première entrée du tableau

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt les autres entrées du tableau une à une 7 endfor

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum L algorithme est correct!

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum 6 19 3 7 11 9 2 15 5

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt i = 1les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum 6 19 3 7 11 9 2 15 5

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt i = 2les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum 6 19 3 7 11 9 2 15 5

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt i = 3les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum 6 19 3 7 11 9 2 15 5

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt i = 4les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum 6 19 3 7 11 9 2 15 5

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt i = 5les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum 6 19 3 7 11 9 2 15 5

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt i = 6les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum 6 19 393 7 11 9 2 15 5

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt i = 7les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum 6 19 393 7 11 9 2 15 5

Écrire un algorithme données: un tableau d entiers résultat: l élément minimum du tableau 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt i = 8les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum 6 19 393 7 11 9 2 15 15 5

Écrire un algorithme de l élément x données: un tableau d entiers et un entier résultat: l indice de l entier recherché dans le tableau s il s y trouve, -1 sinon 1 2 3 4 5 6 7 RechercheMin (tab: un tableau de n entiers) min tab[0] on initialise le minimum à la première entrée du tableau for i from 1 to n-1 do Puis on parcourt les autres entrées du tableau une à une if min > tab[i] then en mettant à jour le minimum si nécessaire min tab[i] endif endfor return min À la fin du parcours, on obtient le minimum

Écrire un algorithme de l élément x données: un tableau d entiers et un entier résultat: l indice de l entier recherché dans le tableau s il s y trouve, -1 sinon 1 2 3 4 5 6 7 RechercheMin RechercheElt (tab: un untableau de den nentiers, entiers) x: entier) ind -1 for i from 0 to n-1 do if tab[i] = x then ind i endif endfor return ind on initialise l indice de x dans le tableau à -1, ie. x n a pas encore été vu Puis on parcourt toutes les entrées du tableau une à une en mettant à jour l indice de x dans le tableau si nécessaire À la fin du parcours, on obtient l indice de x dans tab s il s y trouve, -1 sinon

Écrire un algorithme de l élément x données: un tableau d entiers et un entier résultat: l indice de l entier recherché dans le tableau s il s y trouve, -1 sinon 1 2 3 4 5 6 7 RechercheMin RechercheElt (tab: un untableau de den nentiers, entiers) x: entier) ind -1 for i from 0 to n-1 do if tab[i] = x then ind i endif endfor return ind on initialise l indice de x dans le tableau à -1, ie. x n a pas encore été vu Puis on parcourt toutes les entrées du tableau une à une en mettant à jour l indice de x dans le tableau si nécessaire À la fin du parcours, on obtient l indice de x dans tab s il s y trouve, -1 sinon Amélioration: retourner l indice de x dès qu on le trouve dans le tableau

Écrire un algorithme de l élément x données: un tableau d entiers et un entier résultat: l indice de l entier recherché dans le tableau s il s y trouve, -1 sinon 1 2 3 4 5 6 7 RechercheMin RechercheElt (tab: un untableau de den nentiers, entiers) x: entier) ind -1 on initialise l indice de x dans le tableau à -1, ie. x n a pas encore été vu for i from 0 to n-1 do Puis On parcourt on parcourt toutes toutes les entrées les entrées du tableau du tableau une àune une à une if tab[i] = x then en mettant retournant à jour l indice l indice de xde dans x dans le tableau tableau si onsitrouve nécessaire x ind return i i endif endfor return ind -1 ÀSi la onfin arrive du parcours, ici, c est que on obtient x n a pas l indice été trouvé de x dans tab s il et on s yretourne trouve, -1 sinon Amélioration: retourner l indice de x dès qu on le trouve dans le tableau

Conclusion Losqu on connait bien un algorithme pour résoudre un problème, on peut en déduire d autres pour résoudre d autres problèmes similaires en effectuant de petits changements

Conclusion Losqu on connait bien un algorithme pour résoudre un problème, on peut en déduire d autres pour résoudre d autres problèmes similaires en effectuant de petits changements Questions On a parlé d amélioration, mais qu est-ce que cela signifie? Comment comparer deux algorithmes résolvant le même problème sur les mêmes instances?

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau Principe: diviser pour régner 6 19 3 7 11 9 2 15 5

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau Principe: diviser pour régner 6 19 3 7 11 9 2 15 5

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau Principe: diviser pour régner 6 19 3 7 11 9 2 15 5 6 3 9

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau Principe: diviser pour régner 6 19 3 7 11 9 2 15 5 6 3 2 5 9 3

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau Principe: diviser pour régner 6 19 3 7 11 9 2 15 5 6 3 2 5 9 2 3

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau Principe: diviser pour régner 6 19 3 7 11 9 2 15 5 6 3 2 5 9 2 3 2

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau Principe: diviser pour régner 6 19 3 7 11 9 2 15 5 6 3 2 5 9 2 3 2 2

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau Principe: diviser pour régner 6 19 3 7 11 9 2 15 5 si T a plus qu un élément scinder le tableau en deux sous-tableaux T 1 et T 2 calculer le minimum, min 1, de T 1 calculer le minimum, min 2, de T 2 retourner le minimum de min 1 et min 2 sinon retourner l unique élément de T

Un nouvel algorithme pour trouver le minimum d un tableau données: un tableau d entiers résultat: l élément minimum du tableau Principe: diviser pour régner 6 19 3 7 11 9 2 15 5 si T a plus qu un élément scinder le tableau en deux sous-tableaux T 1 et T 2 calculer le minimum, min 1, de T 1 calculer le minimum, min 2, de T 2 Algorithme récursif retourner le minimum de min 1 et min 2 sinon retourner l unique élément de T

Questions On a parlé d amélioration, mais qu est-ce que cela signifie? Comment comparer deux algorithmes résolvant le même problème sur les mêmes instances?

Questions On a parlé d amélioration, mais qu est-ce que cela signifie? Comment comparer deux algorithmes résolvant le même problème sur les mêmes instances? Comparer deux algorithmes comparer les vitesses d exécution sur les mêmes instances algorithme efficace

Questions On a parlé d amélioration, mais qu est-ce que cela signifie? Comment comparer deux algorithmes résolvant le même problème sur les mêmes instances? Comparer deux algorithmes comparer les vitesses d exécution sur les mêmes instances algorithme efficace compter le nombre d opérations élémentaires effectuées lors du déroulement de l algorithme aujourd hui: 1 opération élémentaire 1 nanoseconde (10 9 s) Étude de la complexité en temps

Questions On a parlé d amélioration, mais qu est-ce que cela signifie? Comment comparer deux algorithmes résolvant le même problème sur les mêmes instances? Comparer deux algorithmes comparer les vitesses d exécution sur les mêmes instances comparer l espace nécessaire en mémoire selon les instances algorithme efficace

Questions On a parlé d amélioration, mais qu est-ce que cela signifie? Comment comparer deux algorithmes résolvant le même problème sur les mêmes instances? Comparer deux algorithmes comparer les vitesses d exécution sur les mêmes instances algorithme efficace comparer l espace nécessaire en mémoire selon les instances lisibilité de l algorithme, simplicité du principe, simplicité de l implémentation... Attention il existe des algorithmes pour lesquels on ne connait pas de solution efficace!

Le problème du voyageur de commerce

Le problème du voyageur de commerce ronde la plus courte passant par tous les villages?

Le problème du voyageur de commerce ronde la plus courte passant par tous les villages? Pas d autre algorithme connu que de calculer toutes les rondes possibles! Pas de solution efficace!

aujourd hui: 1 opération élémentaire 1 nanoseconde (10 9 s) n 20 40 60 100 300 taille de la donnée n 2 1 2500 ms 1 625 ms 1 278 ms 1 100 ms 1 11 ms n 5 1 300 s 1 10 s 78 100 s 10 s 40,5 min 2 n n n 1 ms 18, 3 min 3, 3 10 7... siècles 36, 5 années 4 10 11 siècles... nombres d opérations élémentaires

aujourd hui: 1 opération élémentaire 1 nanoseconde (10 9 s) n 20 40 60 100 300 taille de la donnée n 2 1 2500 ms 1 625 ms 1 278 ms 1 100 ms 1 11 ms n 5 1 300 s 1 10 s 78 100 s 10 s 40,5 min 2 n n n 1 ms 18, 3 min 3, 3 10 7... siècles 36, 5 années 4 10 11 siècles... nombres d opérations élémentaires Et il existe des problème qu on ne sait pas résoudre avec un algorithme!

Conclusion Connaître des algorithmes permet d en concevoir de nouveaux régit par un principe similaire lecture, modification et écriture d algorithmes Un algorithme doit être efficace pour pouvoir donner une réponse dans un temps raisonnable en utilisant une place en mémoire raisonnable. étude de la complexité d un algorithme