def generer_liste_alea(n,maxi):
return [random.randint(0,maxi) for i in range(n)]
def tri_selection(L):
for i in range(len(L)-1):
mini=i #indice
for j in range(i+1,len(L)):
if L[j]<L[mini]:
mini=j
if mini!=i:
L[i],L[mini]=L[mini],L[i]
return L
Liste des algorithmes à connaître en Spécialité NSI :
- Calcul de la moyenne d’une liste d’entiers
def moyenne(L):
somme=0
for elm in L:
somme=somme+elm
return somme/len(L)
- Calcul du quotient et du reste de la division euclidienne, sans faire de division :
def divisionEuclidienne(a,b):
r=a
q=0
while r>=b:
r=r-b
q=q+1
return (q,r)
- Comptage de l’occurrence d’un élément dans une liste
def compte(tab,valeur):
cpt=0
for elm in tab:
if elm==valeur:
cpt=cpt+1
return cpt
- Recherche du maximum d’une liste ou de l’indice du maximum d’une liste donnée
L=[randint(0,100) for i in range(10)]
def rechercheMaxi(L):
indiceMaxi=0
for i in range(len(L)):
if L[i]>L[indiceMaxi]:
indiceMaxi=i
return L[indiceMaxi],indiceMaxi
- Recherche du minimum d’une liste ou de l’indice du minimum d’une liste donnée
def rechercheMini(L):
indiceMini=0
for i in range(len(L)):
if L[i]<L[indiceMini]:
indiceMini=i
return L[indiceMini],indiceMini
- Recherche dichotomique d’un élément dans une liste triée
def rechercheIndiceDicho(elm, T):
#@pre T est une liste d'entier triée contenant l'élément cherché
assert elm in T,"elm absent dans T"
g = 0
d = len(T)-1
while g <= d:
m = (g+d)//2
if T[m] == elm :
return m
if T[m] < elm :
g = m+1
else :
d = m-1
- Parcours d’une matrice :
- Comptage : parcours total de la matrice
- Recherche d’un élément avec un «return» qui stoppe le parcours total pendant la boucle for
- Tri par sélection d’une liste d’entiers :
def tri_selection(L):
for i in range(len(L)-1):
mini=i #indice
for j in range(i+1,len(L)):
if L[j]<L[mini]:
mini=j
if mini!=i:
L[i],L[mini]=L[mini],L[i]
return L
- Tri par insertion d’une liste d’entiers
from random import *
T=[randint(0,100) for i in range(10)]
def triParInsertion(T):
n=len(T)
for i in range(1,n):
j=i
x=T[i]
while (j>0) and (T[j-1]>x):
T[j]=T[j-1]
j=j-1
T[j]=x
return T
- Recherche du zéro d’une fonction par dichotomie, dans un intervalle [a,b] donné
- Calcul de la valeur du nième terme d’une suite donnée, définie par une formule de récurrence ou par une formule explicite
- Calcul du rang k tel que Un>k
- Algorithme des k plus proches voisins