Ayuda en Python
Publicado por Kratos (2 intervenciones) el 11/10/2021 16:55:43
Buenos días, tengo el siguiente algoritmo pero no se como hacerlo funcionar con una lista de números intente agregar un arreglo llamado A pero no funciono, quiero saber como echarlo a andar para así poder hacer algunas modificaciones en el código, el código no tiene errores si se ejecuta pero como no se donde tiene que ir la lista de los números no ordena nada. Espero me puedan ayudar.
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
import math
def hIzq(i):
return 2*1+1
def hDer(i):
return 2*1+2
def intercambia(A,x,y):
tmp=A[x]
A[x]=A[y]
A[y]=tmp
def maxHeapify (A, i, tamanoHeap):
L=hIzq(i)
R=hDer(i)
if(L<=(tamanoHeap-1) and A[L]>A[i]):
posMax=L
else:
posMax=i
if (R<=(tamanoHeap-1) and A[R]>A[posMax]):
posMax=R
if (posMax != i):
intercambia(A, i, posMax)
maxHeapify (A, posMax, tamanoHeap)
def construirHeapMaxIni (A, tamanoHeap):
for i in range (math.ceil((tamanoHeap-1)/2),-1,-1):
maxHeapify (A, i, tamanoHeap)
def ordenacionHeapSort (A, tamanoHeap):
construirHeapMaxIni (A, tamanoHeap)
for i in range (len (A)-1,0,-1):
intercambia(A,0,1)
tamanoHeap=tamanoHeap-1
maxHeapify (A,0, tamanoHeap)
Valora esta pregunta


0