Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Operation Counts Method ในอัลกอริธึม


มีหลายวิธีในการประมาณค่าใช้จ่ายของอัลกอริทึมบางตัว หนึ่งในนั้นโดยใช้การนับการดำเนินการ เราสามารถประมาณความซับซ้อนของเวลาของอัลกอริทึมโดยเลือกการดำเนินการต่างๆ สิ่งเหล่านี้เป็นเหมือนการบวก การลบ ฯลฯ เราต้องตรวจสอบจำนวนการดำเนินการเหล่านี้ ความสำเร็จของวิธีนี้ขึ้นอยู่กับความสามารถของเราในการระบุการดำเนินการที่ก่อให้เกิดความซับซ้อนเกือบตลอดเวลา

สมมติว่าเรามีอาร์เรย์ขนาด n [0 ถึง n - 1] อัลกอริทึมของเราจะค้นหาดัชนีขององค์ประกอบที่ใหญ่ที่สุด เราสามารถประมาณค่าใช้จ่ายได้โดยการนับจำนวนการดำเนินการเปรียบเทียบที่ดำเนินการระหว่างองค์ประกอบแต่ละคู่ของอาร์เรย์ เราต้องจำไว้ว่าเราจะเลือกการผ่าตัดเพียงครั้งเดียว ในอัลกอริธึมนี้มีการดำเนินการอื่นๆ อีกสองสามอย่าง เช่น การเพิ่มตัวแปรการวนซ้ำ i หรือการกำหนดค่าสำหรับดัชนี เป็นต้น แต่จะไม่นำมาพิจารณาในกรณีนี้

อัลกอริทึม

getMax(arr, n):
   index := 0
   max := arr[0]
   for i in range 1 to n - 1, do
      if arr[i] > max, then
         max := arr[i]
         index := i
      end if
   done
   return index

เราต้องเลือกการดำเนินการที่ดำเนินการตามระยะเวลาสูงสุดเพื่อประมาณการต้นทุน สมมติว่าเรามีอัลกอริธึมการเรียงลำดับแบบบับเบิลหนึ่งตัว และเรานับการดำเนินการสลับ จากนั้นเราต้องจำไว้ว่าเมื่อไรจะสูงสุด ซึ่งจะทำให้เราได้ผลลัพธ์สูงสุดในระหว่างการวิเคราะห์