Bonjour,
Je remercie par avance tous ceux qui s'intéresseront à mon problème.
Voici mon code :Ma fonction partition fait le travail comme il faut, et les appels récursifs se font sur les bons sous-tableaux, mais au moment de "raccrocher" tout le monde, j'obtiens n'importe quoi. Quelqu'un peut-il m'expliquer pourquoi ma récursion échoue ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 # *-coding:Utf-8 -* import random def swap(A, i, j): temp = A[i] A[i] = A[j] A[j] = temp def chosePivot(A): return A[random.randint(0, len(A)-1)] def partition(A, p): swap(A, 0, A.index(p)) i = 1 j = 1 while j < len(A): if A[j] < p: swap(A, i, j) i += 1 j += 1 swap(A, 0, i-1) return A.index(p) def quickSort(A): if len(A) <= 1: return A p = chosePivot(A) r = partition(A, p) quickSort(A[:r]) quickSort(A[r+1:]) return A
Merci
Immo
Partager