ความซับซ้อนของเวลาของการเรียงลำดับการแทรกคืออะไร
ความซับซ้อนของเวลา คือระยะเวลาที่ชุดโค้ดหรืออัลกอริทึมใช้ในการประมวลผลหรือเรียกใช้เป็นฟังก์ชันของจำนวนอินพุต
สำหรับการเรียงลำดับการแทรก ความซับซ้อนของเวลาจะอยู่ในลำดับ O(n) เช่น O ใหญ่ของ n ในสถานการณ์ที่ดีที่สุด และในกรณีเฉลี่ยหรือกรณีที่เลวร้ายที่สุด ความซับซ้อนอยู่ในลำดับ O(n 2 )
เวลาของการเรียงลำดับจะเป็นอย่างไรเมื่ออัลกอริทึมการเรียงลำดับการแทรกถูกนำไปใช้กับอาร์เรย์ขนาด n ของรูปแบบต่อไปนี้:6, 5, 8, 7, 10, 9 …… I, i-1
ความซับซ้อนของเวลาของการจัดเรียงรูปแบบอาร์เรย์ด้านบนคือ O(n) มาดูอัลกอริธึมนี้กันอย่างระมัดระวัง โดยที่คู่ทั้งหมดจะถูกสลับจากตำแหน่งเดิม กล่าวคือ ตำแหน่งขององค์ประกอบ 1 และองค์ประกอบ 2 มีการแลกเปลี่ยนกัน 3 และ 4 มีการแลกเปลี่ยนกัน เป็นต้น ดังนั้น ในขณะที่การเรียงลำดับอัลกอริธึมจะใช้เวลาดำเนินการเพียงครั้งเดียว n ครั้งเพื่อจัดเรียงอัลกอริธึมนี้
กำหนดประเภทการแทรกและเขียนโค้ดสำหรับการจัดเรียงการแทรกหรือไม่
การเรียงลำดับการแทรกคืออัลกอริธึมการเรียงลำดับที่จัดเรียงโครงสร้างข้อมูลโดยการวางองค์ประกอบที่ตำแหน่งในอาร์เรย์ที่จัดเรียง
รหัสด้านล่างแสดงฟังก์ชันสำหรับการเรียงลำดับการแทรก -
ตัวอย่าง
void insertionSort(int arr[], int n) { for (int i = 1; i < n; i++){ int element = arr[i]; int j = i-1; while (j >= 0 && arr[j] > element){ arr[j+1] = arr[j]; j = j-1; } arr[j+1] = element; } }