ท้าทาย
รับรายการจำนวนเต็มแสดงวิธีจัดเรียงแรงโน้มถ่วง
เรียงลำดับแรงโน้มถ่วง
ในการจัดเรียงแรงโน้มถ่วงลองนึกภาพตัวเลขเป็นแถวของดอกจัน จากนั้นทุกอย่างจะตกและแถวใหม่จะถูกจัดเรียงอย่างชัดเจน ลองดูตัวอย่าง:
[2, 7, 4, 6]
:
**
*******
****
******
-------
**
****
*******
******
-------
** | 2
**** | 4
****** | 6
******* | 7
ขอให้สังเกตว่านี่เป็นเพียงการเรียงลำดับฟองคู่ขนาน
รายละเอียดที่แน่นอน
ในการวนซ้ำแต่ละครั้งเริ่มต้นจากแถวบนสุดให้ใช้เครื่องหมายดอกจันทุกอันจากแถวที่ไม่มีเครื่องหมายดอกจันอยู่ด้านล่างและเลื่อนลงมาเป็นแถว ทำต่อไปเรื่อย ๆ จนกว่าจะมีการเรียงลำดับรายการ
อินพุต
อินพุตจะเป็นรายการของจำนวนเต็มบวกอย่างเคร่งครัด
เอาท์พุต
สำหรับเอาต์พุตคุณต้องเอาต์พุตในแต่ละขั้นตอน คุณสามารถเลือกอักขระ ASCII ที่ไม่สามารถพิมพ์ได้ทั้งสองช่องว่างตัวใดตัวหนึ่งเป็น "เครื่องหมายดอกจัน" และอีกตัวหนึ่งเป็น "ขีด" แถวของเครื่องหมายดอกจันจะต้องคั่นด้วยบรรทัดใหม่มาตรฐานของการเรียงลำดับบางอย่าง (เช่น\n
หรือ\r\f
) แถวของเครื่องหมายขีดคั่นต้องมีความกว้างของแถวที่กว้างที่สุดเป็นอย่างน้อย (มิฉะนั้นเครื่องหมายดอกจันของคุณจะตกลงไปไกลเกินไป!) แถวของเครื่องหมายขีดคั่นที่ด้านล่างสุดเป็นตัวเลือก ขึ้นบรรทัดใหม่ที่ท้ายจะได้รับอนุญาต อนุญาตให้เว้นวรรคต่อท้ายในแต่ละบรรทัด
กรณีทดสอบ
อินพุตจะถูกแสดงเป็นรายการจากนั้นเอาต์พุตจะถูกแสดงทันทีด้านล่าง กรณีทดสอบถูกคั่นด้วยบรรทัดใหม่สองครั้ง
[4, 3, 2, 1]
****
***
**
*
----
***
** *
* *
**
----
**
* *
** *
***
----
*
**
***
****
[6, 4, 2, 5, 3, 1]
******
****
**
*****
***
*
------
****
** **
****
***
* **
***
------
**
****
*** **
* *
***
*****
------
**
***
* *
*** **
****
*****
------
**
*
***
****
******
*****
------
*
**
***
****
*****
******
[8, 4, 2, 1]
********
****
**
*
--------
****
** ****
* **
**
--------
**
* **
** ****
****
--------
*
**
****
********
โปรดแก้ไขกรณีทดสอบของฉันหากพวกเขาทำผิดฉันทำมันด้วยมือ :)
หมายเหตุ: อย่าส่งออกรายการที่เรียงลำดับในตอนท้าย :)
เกณฑ์การให้คะแนน
โปรแกรมทั้งหมดของคุณจะถูกเขียนทับกัน คุณไม่ต้องการให้โปรแกรมของคุณล้มลงดังนั้นโปรดแน่ใจว่าคุณมีรหัสที่สั้นที่สุด!