Sie sind auf Seite 1von 4

Rvision informatique

1re Sance

Objets de Python :
Les chaine de caractres : est un objet non modifiable
La liste :est un objet qui peut contenir nimporte quels objet il est modifiable
1. L.append(X) L=L+[X]
2. L.remove(X) supprime 1re apparition de X
3. Del L[i] supprime un elt quil doit exister a la position i
4. X=L.pop(X) X=L[-1] et del L[-1]
5. X=L.pop(i) mme fonctionnement mais a lelt de position i
Tuple : un objet htrogne non modifiable
Dictionnaire :
1. D=dict() Dictionnaire vide

2. D=[cl]=valeur

D={cl :valeur}
Change de valeur si la cl existe

dans le dictionnaire

Les parcours :

Soit D={c1 :v1,c2 :v2,c3 :v3,..}


o

Parcours des clef :


For i in D .Keys()

Parcours des valeurs :


For i in D.values()

Complexits :
1. Constante O(1) : nombre doprations est constate
2. Linaire O(n) : nombre doprations est a*n+b (a,b cte)
3. Quadratique O(n) : nombre doprations est a*n+b*n+c (a,b,c cte)
4. Logarithmique : O(log(n)) : taille des donnes divises par une cte a
chaque rptition de la boucle
Exemples classiques : passage entre les bases ; recherche dichotomique ;
expo rapide
Les Tris (1re anne ) :
Tri par slection :
Principe :
Chaque lments dindice i entre [0,n-2] est chang avec le plus
petit lt entre [i,n-1]
N.B : cest un tri en place qui cherche et compare i avec le min
(i+1,n)
M.El Meslouhi

Page 1

Def tri_selection(L) :
n=len(L)
for i in range (n-1) :
m=i
for j in range (i+1,n) :
if L[j]<L[m] :
m=j
L[i],L[m]=L[m],L[i]

Complexit :
Nombre de comparaison
Nombre dchange
Rsultat

Complexit :
Meilleures : (Liste dj
tri)
k=[n*(n-1)]/2
(quadratique)
n-1 (lineaire)

Pire cas :(Liste non tri)


k=[n*(n-1)]/2
(quadratique)
n-1 (lineaire)

La Complexit est quadratique O(n)

NB : si on a :
Def tri_selection(L) :
n=len(L)
for i in range (n-1) :
m=i
for j in range (i+1,n) :
if L[j]<L[m] :
m=j
if n !=i : # La complexit dchange sera null !!
L[i],L[m]=L[m],L[i]

Extrait de lpreuve E3A 2006 :


1. Une fct qui reoit en paramtre une liste (ou tableau)T et qui
renvoie l'indice du plus grand lment de T :
def indice_max(t):
n=len(t)
m=0
for i in range(1,n):
if t[i]>t[m]:
m=i
return m

2. Une fonction qui reoit en paramtre une liste (ou tableau) T, et qui
trie les lments de T dans lordre croissant, en faisant appel a la
fonction indice_max(t):
def tri_selection(t):
n=len(t)
for i in range(n-1,0,-1):
m=indice_max(t[:i+1])
t[i],t[m]=t[m],t[i]

M.El Meslouhi

Page 2

3. Mme question, mais a la version rcursive:


def tri_selection(t):
if n>1:
m=indice_max(t[0:n-1])
t[n-1],t[m]=t[m],t[n-1]
tri_selection (t,n-1)

Tri par insertion:

Def tri_insertion(L) :
n=len(L)
for i in range (1,n):
x=L[j]
j=i-1
while j>=0 and L[j]>x:
L[j+1]=l[j]
j=j-1
L[j+1]=x
Complexit :
Meilleures : (Liste dj
tri)
Nombre de comparaison
n-1 O(n) (lineaire)

Nombre daffectation
Rsultat

2*(n-1) (lineaire)

Pire cas :(Liste non tri)


k=[n*(n-1)]/2
(quadratique)
2*(n-1)+ k quadratique)

(lineaire) O(n)
La Complexit est
quadratique O(n)
Exercice : Le Tri par insertion

1-#Effectue une recherch sequentielle:


def pos_inser1(t,x):
n=len(t)
for i in range (0,n):
if t[i]>x:
return i
return n
2-#Effectue une recherch dichotomique:
def pos_inser1(t,x):
a=0
b=len(t)-1
while a<=b:
m=(a+b)//2
if x<t[m]:
b=m-1
else:
a=m+1

M.El Meslouhi

Page 3

M.El Meslouhi

Page 4

Das könnte Ihnen auch gefallen