• Aucun résultat trouvé

for u in X: if u &lt

N/A
N/A
Protected

Academic year: 2022

Partager "for u in X: if u &lt"

Copied!
2
0
0

Texte intégral

(1)

# Convention : le plus petit est l'élément de rang 0.

def card(X):

return len(X)

def nPetits(p, X):

nb = 0

for k in range(len(X)):

if X[k] < p:

nb += 1 return nb

def nPetits_1(p, X):

return len([x for x in X if x < p])

def partitionP(p, X):

L = []

for u in X:

if u < p:

L.append(u) return L

def partitionP_1(p, X):

return [x for x in X if x < p]

def partitionG(p, X):

return [x for x in X if x > p]

def elementDeRang(k, X):

if k >= len(X):

return None pivot = X[0]

nP = nPetits(pivot, X) if k < nP:

return elementDeRang(k, partitionP(pivot, X)) if k == nP:

return pivot

return elementDeRang(k - nP -1, partitionG(pivot, X))

def medians(X):

return([elementDeRang(2, X[5*k : 5*k + 5]) for k in range(len(X)//5)])

def elementDeRangBis(k, X):

if len(X) < 5:

return elementDeRang(k, X) Y = medians(X)

pivot = elementDeRangBis(len(Y) // 2, Y) nP = nPetits(pivot, X)

if k < nP:

1

(2)

return elementDeRangBis(k, partitionP(pivot, X)) if k == nP:

return pivot

return elementDeRangBis(k - nP - 1, partitionG(pivot, X))

import random as rd

X = [rd.uniform(0, 100) for k in range(8)]

print(X)

print(elementDeRang(2, X))

print(elementDeRangBis(2, X))

from time import clock

X, rang = [rd.uniform(0, 1000) for k in range(10**6 + 2)], 10**5 + 1

# X, rang = [k for k in range(7*10**2)], 6*10**2 t1 = clock()

u = elementDeRang(rang, X) t2 = clock()

print('u : ',u, ', durée : ', t2 - t1)

t1 = clock()

u = elementDeRangBis(rang, X) t2 = clock()

print('u : ',u, ', duréeBis : ', t2 - t1)

# En pratique, elementDeRangBis est beaucoup plus lent, sauf si

?

# Q6 : on montre que t(n) <= l.n + 3.n.c/4

# d'où c = 4*l convient

2

Références

Documents relatifs

On le déplace vers la tour Q, et il ne reste plus qu’à déplacer les n autres disques de la tour R vers la tour Q en passant par la tour P, ce que fait l’appel de

[r]

» Cette réponse se passe de commen- taires ; mais il convient d'ajouter, pour bien mettre en lumière le génie du fa- bricant dont il s'agit, que l'exportateur de la

atelier fonctionnent 12 tours en bois mus par la vapeur et, dans un atelier adjacent, 12 forges avec leurs enclumes sont à la disposition des élèves. Une vaste salle est consacrée

Spécialité de montres remon- toirs à vue et bascule de 13 à 20 lignes, acier, métal et argent pour tous pays a u x meilleures condi- tions de qualité et de prix... \i/ à l'Orient

Songez qu'il contient (j(&gt;7 articles, dont beaucoup donneront lieu à de longues discussions. Pen- dant ce temps, les autres projets concernant le travail seront renvoyés à la

Since any regular weakly harmonic map having a constant trace on OB 3 is constant, this question is equivalent to the question of the existence of a weakly harmonic map

Directeur: Frédéric Lenne - Editeur délégué: Michaëlle Pesah - REDACTION - Rédacteur en chef: Patrick Cheruette, Rédactrice: Julie Nicolas, Ont collaboré à ce numéro:.