#!/usr/bin/python3 # -*- coding: utf-8 -*- """ TP AP1 Licence SESI 1ère année Univ. Lille 1 analyse_tris.py TP4 - Evaluation empirique des tris http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp4_tri.html """ __author__ = 'PREUD\'HOMME Geoffrey & BEAUSSART Jean-loup' __date_creation__ = 'Tue, 10 Mar 2015 10:26:41 +0100' from random import randint, shuffle def partie(nom): print('\n', nom, '=' * len(nom), sep='\n') def section(nom): print('\n', nom, '-' * len(nom), sep='\n') def question(numero): print('\n***', 'Question', numero, '***') partie("Prérequis") partie("Travail à réaliser") section("Préliminaires") question(1) def liste_croissante(n): """ int -> list(int), construit la liste des entiers compris entre 0 et n-1, rangés dans l'ordre croissant CU: n est un entier positif """ assert(type(n)==int and n>=0) return [i for i in range(n)] question(2) def liste_decroissante(n): """ int -> list(int), construit la liste des entiers compris entre 0 et n-1, rangés dans l'ordre décroissant CU: n est un entier positif """ assert(type(n)==int and n>=0) return [i for i in range(n-1, 0, -1)] question(3) def liste_alea(n, a, b): """ int, int, int → list Renvoie une liste d’entiers, qui construit une liste de longueur n les entiers choisis au hasard compris entre a et b. """ res = [] for i in range(n): res.append(randint(a, b)) return res section("Compter les comparaisons") compteur = 0 def comp(x, y): """ parametres x , y de même type et comparables valeur renvoyee : int -1 si xy action : incrémente le compteur CU : aucune """ global compteur compteur = compteur + 1 if x < y: return -1 elif x == y: return 0 else: return 1 question(1) question(2) partie("Analyse du tri par sélection") question(1) question(2) partie("Analyse du tri par insertion") question(1) section("Dans le meilleur des cas") question(1) question(2) section("Dans le pire des cas") question(1) question(2) section("En moyenne") question(1) question(2) question(3) question(4) question(5) section("Avec Gnuplot") question(1)