นี่คือคำถามที่รหัสกอล์ฟ
อินพุต
รายการจำนวนเต็มที่ไม่เป็นลบในรูปแบบใดจะสะดวกที่สุด
เอาท์พุต
รายการเดียวกันเรียงตามลำดับในรูปแบบที่สะดวกที่สุด
การ จำกัด
- รหัสของคุณจะต้องทำงานในเวลา O (n log n) ในกรณีที่เลวร้ายที่สุดซึ่ง
n
เป็นจำนวนเต็มในอินพุต ซึ่งหมายความว่า quicksort แบบสุ่มหมดตัวอย่างเช่น อย่างไรก็ตามมีตัวเลือกอื่น ๆ ให้เลือกมากมาย - อย่าใช้ไลบรารี / ฟังก์ชั่น / การเรียงลำดับที่คล้ายกัน อย่าใช้อะไรที่ทำให้การเรียงลำดับส่วนใหญ่เหมาะกับคุณเช่นห้องสมุดกอง โดยพื้นฐานไม่ว่าคุณจะใช้อะไรก็ตามจงนำไปใช้ตั้งแต่เริ่มต้น
คุณสามารถกำหนดฟังก์ชั่นหากคุณต้องการ แต่โปรดแสดงตัวอย่างของมันในโปรแกรมเต็มรูปแบบที่ใช้งานได้จริง มันควรจะทำงานได้สำเร็จและรวดเร็วในทุกกรณีทดสอบด้านล่าง
กรณีทดสอบ
In: [9, 8, 3, 2, 4, 6, 5, 1, 7, 0]
Out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In: [72, 59, 95, 68, 84]
Out:[59, 68, 72, 84, 95]
In: [2, 2, 1, 9, 3, 7, 4, 1, 6, 7]
Out:[1, 1, 2, 2, 3, 4, 6, 7, 7, 9]
In: [2397725, 1925225, 3304534, 7806949, 4487711, 8337622, 2276714, 3088926, 4274324, 667269]
Out:[667269,1925225, 2276714, 2397725,3088926, 3304534, 4274324, 4487711, 7806949, 8337622]
คำตอบของคุณ
โปรดระบุอัลกอริทึมการเรียงลำดับที่คุณใช้งานและความยาวของโซลูชันในหัวข้อคำตอบของคุณ
ขั้นตอนวิธีการเรียงลำดับเวลา O (n log n)
มีอัลกอริธึมเวลา O (n log n) มากมาย ตารางนี้มีรายการบางส่วนของพวกเขา
intersect
มาภายใต้ "คล้ายกัน" ถ้ามันเรียงลำดับโดยอัตโนมัติ หากคุณลบรายการที่ซ้ำกันคุณจะให้ผลลัพธ์ที่ไม่ถูกต้อง
intersect
เรียงลำดับอาร์เรย์โดยอัตโนมัติ ฉันเดาว่าคุณต้องการออกกฎเหล่านั้นด้วย วิธีการเกี่ยวกับunique
(ลบรายการที่ซ้ำกันเรียงลำดับผล)?