때때로 우리는 정렬된 순서로 행렬의 모든 요소가 필요합니다. 그러나 행렬은 행과 열의 형태이므로 결과를 얻기 위해 일반적인 정렬 알고리즘을 적용하지 않습니다. 오히려 아래의 사용자 정의 함수를 사용하여 요소를 정렬합니다.
예
def heapq(a, k, i):
greater = i
l = 2 * i + 1
r = 2 * i + 2
if l < k and a[i] < a[l]:
greater = l
if r < k and a[greater] < a[r]:
greater = r
if greater != i:
a[i], a[greater] = a[greater], a[i]
heapq(a, k, greater)
def Sort(val):
n = len(val)
for i in range(n, -1, -1):
heapq(val, n, i)
for i in range(n - 1, 0, -1):
val[i], val[0] = val[0], val[i]
heapq(val, i, 0)
x = [11, 3, 50, 75, 4, 32, 9, 2, 15]
Sort(x)
n = len(x)
print("Sorted values are")
for i in range(n):
print("%d" % x[i]) 위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
출력
Sorted values are 2 3 4 9 11 15 32 50 75