site de Fabien Torre


Source de tableaux-avances.py

1: 2: # recherche la valeur minimale dans un tableau 3: def minimum (t): 4: min = t[0] 5: for e in t: 6: if e<min: 7: min = e 8: print("Le minimum est",min) 9: 10: # recherche la valeur minimale dans un tableau 11: def index_minimum (t,d,f): 12: imin = d 13: for i in range(d+1,f+1): 14: if t[i]<t[imin]: 15: imin = i 16: return imin 17: 18: # teste si l'élément x est présent dans la tableau t 19: def recherche (x,t): 20: i = 0 21: while ((i<len(t)) and (t[i]!=x)): # attention à l'ordre des conditions 22: i = i+1 23: if (i<len(t)): 24: print(x,'est présent') 25: else: 26: print(x,'n\'est pas présent') 27: 28: # teste si l'élément x est présent dans la tableau t trié 29: def rechercheT (x,t): 30: i = 0 31: while ((i<len(t)) and (t[i]<x)): # attention à l'ordre des conditions 32: i = i+1 33: if ((i<len(t)) and (t[i]==x)): 34: print(x,'est présent') 35: else: 36: print(x,'n\'est pas présent') 37: 38: # teste si l'élément x est présent dans la tableau t trié, par dichotomie 39: def rechercheD (x,t): 40: g = 0 41: d = len(t)-1 42: m = 0 43: trouve = False 44: while (g <= d) and not(trouve): 45: m = (g+d) // 2 # division entière 46: if t[m] == x : 47: trouve = True 48: else: 49: if x < t[m]: 50: d = m-1 51: else: 52: g = m+1 53: 54: if trouve: 55: print(x,'est présent') 56: else: 57: print(x,'n\'est pas présent') 58: 59: # échange de deux positions d'un tableau 60: def echange (t,i,j): 61: tmp = t[i] 62: t[i] = t[j] 63: t[j] = tmp 64: 65: # tri à bulles 66: def tri_bulles (t): 67: for i in range(0,len(t)-1): 68: for j in range(0,len(t)-i-1): 69: if t[j] > t[j+1]: 70: echange(t,j,j+1) 71: 72: # tri extraction 73: def tri_extraction(t): 74: for i in range(0,len(t)-1): 75: imin = index_minimum(t,i,len(t)-1) 76: echange(t,i,imin) 77: 78: # ajoute un élément à sa place dans un tableau trié 79: def insertion (e,t,n): 80: i = n-1 81: while (i>=0) and (t[i]>e): 82: t[i+1] = t[i] 83: i = i-1 84: t[i+1] = e 85: 86: # tri insertion 87: def tri_insertion (t): 88: for i in range(1,len(t)): 89: insertion(t[i],t,i) 90: 91: # appels aux procédures définies ci-dessus sur un tableau de notes 92: 93: print("--- tableau quelconque") 94: 95: notes = [5,12,8,20,3,10] 96: recherche(12,notes) 97: recherche(2,notes) 98: 99: minimum(notes) 100: print("pos du min:",index_minimum(notes,0,len(notes)-1)) 101: 102: print("--- tableau trié") 103: 104: notes = [3,5,8,10,12,20] 105: rechercheT(12,notes) 106: rechercheT(2,notes) 107: 108: rechercheD(12,notes) 109: rechercheD(2,notes) 110: 111: notes.append(-1) 112: insertion(11,notes,len(notes)-1) 113: print("ajout de 11:",notes) 114: 115: print("--- tris de tableaux") 116: 117: notes = [5,12,8,20,3,10] 118: tri_bulles(notes) 119: print("bulles: ",notes) 120: 121: notes = [5,12,8,20,3,10] 122: tri_extraction(notes) 123: print("extract:",notes) 124: 125: notes = [5,12,8,20,3,10] 126: tri_insertion(notes) 127: print("insert: ",notes) 128:
site de Fabien Torre, université de Lille