Removed easter-egg :)
This commit is contained in:
parent
9e6722a861
commit
8e46832ff3
1 changed files with 0 additions and 77 deletions
77
\
77
\
|
@ -1,77 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def heap_extract_max(A):
|
|
||||||
m = A[0]
|
|
||||||
A[0] = A.pop()
|
|
||||||
|
|
||||||
size = len(A)
|
|
||||||
i = 0
|
|
||||||
exit = not size == 0
|
|
||||||
while exit:
|
|
||||||
left = heap_left(size, i)
|
|
||||||
print("left =", left)
|
|
||||||
if left == None:
|
|
||||||
break
|
|
||||||
|
|
||||||
right = heap_right(size, i)
|
|
||||||
print("right =", right)
|
|
||||||
if right == None:
|
|
||||||
if A[i] < A[left]:
|
|
||||||
A[i], A[left] = A[left], A[i]
|
|
||||||
break
|
|
||||||
|
|
||||||
ma = max_3(A[i], A[left], A[right])
|
|
||||||
if ma == A[i]:
|
|
||||||
break
|
|
||||||
elif ma == A[left]:
|
|
||||||
A[i], A[left] = A[left], A[i]
|
|
||||||
i = left
|
|
||||||
else:
|
|
||||||
A[i], A[right] = A[right], A[i]
|
|
||||||
i = right
|
|
||||||
|
|
||||||
return m
|
|
||||||
|
|
||||||
def max_3(a, b, c):
|
|
||||||
if a > b:
|
|
||||||
if a > c:
|
|
||||||
return a
|
|
||||||
else:
|
|
||||||
return c
|
|
||||||
else:
|
|
||||||
if b > c:
|
|
||||||
return b
|
|
||||||
else:
|
|
||||||
return c
|
|
||||||
|
|
||||||
def heap_parent(n):
|
|
||||||
n = n + 1
|
|
||||||
if n == 1:
|
|
||||||
return None
|
|
||||||
else:
|
|
||||||
return (n // 2) - 1
|
|
||||||
|
|
||||||
def heap_left(size, n):
|
|
||||||
n = n + 1
|
|
||||||
l = n * 2
|
|
||||||
if l > size:
|
|
||||||
return None
|
|
||||||
else:
|
|
||||||
return l - 1
|
|
||||||
|
|
||||||
def heap_right(size, n):
|
|
||||||
n = n + 1
|
|
||||||
l = n * 2 + 1
|
|
||||||
if l > size:
|
|
||||||
return None
|
|
||||||
else:
|
|
||||||
return l - 1
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
args = [int(x) for x in sys.argv[1:]]
|
|
||||||
print(args)
|
|
||||||
print(heap_extract_max(args))
|
|
||||||
print(args)
|
|
||||||
|
|
Reference in a new issue