อาร์เรย์สองมิติที่มีขนาด n × n เต็มไปด้วยตัวเลข n * n โดยเริ่มจากหมายเลข 1 ตัวเลขเหล่านั้นจะถูกจัดเรียงต่อแถวตามลำดับจากน้อยไปมาก จำนวนแถวแรกจะต้องมากกว่าจำนวนสุดท้ายของแถวก่อนหน้า (จำนวนที่น้อยที่สุดของทั้งหมด (1) จะอยู่ใน [0,0]) นี้มีความคล้ายคลึงกับ15 ปริศนา
นี่คือตัวอย่างเช่นอาร์เรย์เรียงขนาดn = 3
1 2 3
4 5 6
7 8 9
อินพุต
อินพุตเป็นสัญญาณรบกวน สามารถมีขนาดใดก็ได้สูงสุด n = 10 ตัวอย่างสำหรับ n = 3:
4 2 3
1 8 5
7 9 6
เอาท์พุต
เอาต์พุตรายการswaps ที่ต้องการเพื่อจัดเรียงอาร์เรย์ การสลับถูกกำหนดดังนี้: หมายเลขที่อยู่ติดกันสองตำแหน่งการสลับไม่ว่าจะเป็นแนวนอนหรือแนวตั้ง ไม่อนุญาตให้ทำการเปลี่ยนแนวทแยง
ตัวอย่างเอาต์พุตสำหรับตัวอย่างด้านบน:
- สลับ 4 และ 1
- สลับ 8 และ 5
- สลับ 8 และ 6
- แลกเปลี่ยน 9 และ 8
การแลกเปลี่ยนที่ต้องการน้อยก็จะดีขึ้น เวลาในการคำนวณจะต้องเป็นไปได้
นี่คือตัวอย่างอินพุตอื่นโดยมี n = 10:
41 88 35 34 76 44 66 36 58 28
6 71 24 89 1 49 9 14 74 2
80 31 95 62 81 63 5 40 29 39
17 86 47 59 67 18 42 61 53 100
73 30 43 12 99 51 54 68 98 85
13 46 57 96 70 20 82 97 22 8
10 69 50 65 83 32 93 45 78 92
56 16 27 55 84 15 38 19 75 72
33 11 94 48 4 79 87 90 25 37
77 26 3 52 60 64 91 21 23 7
ถ้าฉันไม่เข้าใจผิดนี่จะต้องใช้ประมาณ 1,000-2,000 swaps