ตามที่อธิบายไว้ในคำถามนี้ :
Dropsort ซึ่งออกแบบโดย David Morgan-Mar เป็นตัวอย่างของ "อัลกอริทึมการเรียงลำดับ" แบบ linear-time ที่สร้างรายการที่จริงแล้วเรียงลำดับแล้ว แต่มีองค์ประกอบดั้งเดิมบางส่วนเท่านั้น องค์ประกอบใด ๆ ที่ไม่ได้มีขนาดใหญ่เท่ากับองค์ประกอบสูงสุดก่อนหน้านั้นจะถูกลบออกจากรายการและทิ้งไป
หากต้องการใช้หนึ่งในกรณีทดสอบของพวกเขาอินพุตของ{1, 2, 5, 4, 3, 7}
อัตราผลตอบแทน{1, 2, 5, 7}
เป็น4
และ3
มีทั้งที่ปรับตัวลดลงเป็นขนาดเล็กกว่าก่อนหน้านี้ "เรียง" 5
ค่า
เราไม่ต้องการอัลกอริทึม "การเรียงลำดับ" เราต้องการให้มันเป็นข้อตกลงที่แท้จริง ดังนั้นฉันต้องการให้คุณเขียนโปรแกรมที่ให้รายการตัวเลขแสดงรายการของรายการ DropSorted (เพื่อเป็นอัลกอริธึมการเรียงลำดับที่สมบูรณ์เราจะต้องรวมรายการเหล่านี้ แต่ การรวมรายการที่เรียงสองรายการก่อนหน้านี้และ การขอให้คุณทำอีกครั้งเป็นการถามคำถามสองคำถามดังนั้นคำถามนี้เป็นขั้นตอน "แยก" ของ DropSort ที่สมบูรณ์ของเราโดยเฉพาะ)
อย่างไรก็ตามการจัดเรียงและเนื้อหาของรายการของเราเป็นสิ่งสำคัญ ผลลัพธ์ของโปรแกรมของคุณจะต้องเทียบเท่ากับผลลัพธ์ของ DropSort ตามด้วย DropSort ของค่าที่ถูกทิ้งและอื่น ๆ จนกว่าคุณจะมีรายการของ chain เรียงลำดับเท่านั้น อีกครั้งให้ยืมชุดทดสอบที่มีอยู่ (และเพิ่มอีกสองรายการ):
Input -> Output
{1, 2, 5, 4, 3, 7} -> {{1, 2, 5, 7}, {4}, {3}}
{10, -1, 12} -> {{10, 12}, {-1}}
{-7, -8, -5, 0, -1, 1} -> {{-7, -5, 0, 1}, {-8, -1}}
{9, 8, 7, 6, 5} -> {{9}, {8}, {7}, {6}, {5}}
{10, 13, 17, 21} -> {{10, 13, 17, 21}}
{10, 10, 10, 9, 10} -> {{10, 10, 10, 10}, {9}} //Note equivalent values aren't dropped
{5, 4, 3, 8, 7, 6} -> {{5, 8}, {4, 7}, {3, 6}}
{0, 2, 5, 4, 0, 7} -> {{0, 2, 5, 7}, {4}, {0}}
คุณอาจสันนิษฐานว่าอินพุตไม่ว่างเปล่า
นี่คือรหัสกอล์ฟดังนั้นจึงใช้กฎมาตรฐาน!
{3,4,5,3,4,5,3,4,5}
ส่งผลให้{{3,4,5,5,5},{3,4,4},{3}}
?
[5, 4, 3, 8, 7, 6] -> [5, 8], [4,3,7,6]
?