Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

พิมพ์ทุกองค์ประกอบในลำดับที่จัดเรียงแล้วจากเมทริกซ์ที่จัดเรียงตามแถวและคอลัมน์ ใน Python

บางครั้งเราต้องการองค์ประกอบทั้งหมดของเมทริกซ์ในลำดับที่จัดเรียงแล้ว แต่เนื่องจากเมทริกซ์อยู่ในรูปแบบแถวและคอลัมน์ เราไม่สามารถใช้อัลกอริทึมจัดเรียงทั่วไปได้ เราจะใช้ฟังก์ชันที่ผู้ใช้กำหนด (user-defined functions) ด้านล่างเพื่อให้ได้องค์ประกอบที่จัดเรียงแล้ว

ตัวอย่าง

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