Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 행 및 열별로 정렬된 행렬에서 모든 요소를 ​​정렬된 순서로 인쇄하려면

<시간/>

때때로 우리는 정렬된 순서로 행렬의 모든 요소가 필요합니다. 그러나 행렬은 행과 열의 형태이므로 결과를 얻기 위해 일반적인 정렬 알고리즘을 적용하지 않습니다. 오히려 아래의 사용자 정의 함수를 사용하여 요소를 정렬합니다.

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