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: