ฉันมีคำจำกัดความของอัลกอริทึมแบบ in-situ จากอาจารย์ แต่ฉันไม่เข้าใจ
อัลกอริธึมในแหล่งกำเนิดอ้างถึงอัลกอริธึมที่ทำงานกับหน่วยความจำΘ (1)
นั่นหมายความว่าอย่างไร?
ฉันมีคำจำกัดความของอัลกอริทึมแบบ in-situ จากอาจารย์ แต่ฉันไม่เข้าใจ
อัลกอริธึมในแหล่งกำเนิดอ้างถึงอัลกอริธึมที่ทำงานกับหน่วยความจำΘ (1)
นั่นหมายความว่าอย่างไร?
คำตอบ:
ก่อนอื่นให้แกะสิ่งที่หมายถึง
Bigและ bigเป็นคลาสของฟังก์ชัน มีความหมายอย่างเป็นทางการเป็นที่นี่แต่สำหรับวัตถุประสงค์ของคำถามนี้เราบอกว่าฟังก์ชั่นอยู่ในถ้ามีคงที่ที่สำหรับทุก ,C นั่นคือเติบโตเร็วที่สุดเท่ากับฟังก์ชันคงที่Θ f O ( 1 ) c x f ( x ) ≤ C f
Big-ไม่ได้มีความหมายมากสำหรับฟังก์ชั่นคงที่เพราะเมื่ออธิบายถึงอัลกอริธึมเวลาหรือการใช้พื้นที่ แต่การที่จะอธิบายสิ่งที่มันหมายถึงถ้ามีบางคงดังกล่าวว่าสำหรับทุก ,ค นั่นคือเติบโตอย่างน้อยเร็วและเร็วที่สุดเท่าที่ฟังก์ชั่นคงที่ฉ∈ Θ ( 1 ) ค, d x d ≤ F ( x ) ≤ คฉ
ตอนนี้สิ่งนี้เกี่ยวกับการใช้หน่วยความจำ? พิจารณาขั้นตอนวิธีการบาง มีบาง (คณิตศาสตร์) ฟังก์ชั่นที่ได้รับการป้อนข้อมูลเป็นจะช่วยให้การใช้งานหน่วยความจำสูงสุดของอัลกอริทึมของคุณกับการป้อนข้อมูลที่มีขนาดใดnขอเรียกฟังก์ชันนี้ข่าวn A n m e m
ดังนั้นตอนนี้เรารวมสองแนวคิดของเรา หากขั้นตอนวิธีการใช้งานหน่วยความจำแล้วฟังก์ชั่นการใช้งานหน่วยความจำที่อยู่ในมีความหมายว่ามีอยู่บางดังกล่าวว่าสำหรับการป้อนข้อมูลใด ๆ หน่วยความจำที่ใช้อยู่ระหว่างและคΘ ( 1 ) d , c d c
กล่าวโดยย่อนั่นหมายความว่าการใช้หน่วยความจำของอัลกอริทึมอยู่ในช่วงค่าคงที่บางค่าโดยไม่คำนึงถึงอินพุต
โดยปกติการทำงานของหน่วยความจำไม่บัญชีสำหรับหน่วยความจำที่ใช้ในการจัดเก็บการป้อนข้อมูลเพื่ออัลกอริทึมเพราะมิฉะนั้นจะใช้หน่วยความจำมักจะมีอย่างน้อย(N)
ความซับซ้อนของพื้นที่คงที่ของอัลกอริทึม
จำนวนหน่วยความจำที่อัลกอริทึมของคุณใช้เป็นอิสระจากอินพุต
อัลกอริทึมถูกกล่าวว่ามีความซับซ้อนของพื้นที่คงที่หากใช้ประโยชน์จากจำนวนพื้นที่คงที่ สามารถเป็นตัวแปรหรืออาร์เรย์ขององค์ประกอบประการ10
อย่างไรก็ตามอัลกอริธึมในแหล่งกำเนิดทำหน้าที่ตามที่ตั้งใจไว้ในอินพุตนั้นจึงต้องใช้พื้นที่น้อยมากหรือไม่มีเลย โดยทั่วไปอินพุตจะถูกเขียนทับโดยเอาต์พุตเมื่ออัลกอริทึมทำงาน ( อ้างอิง )
อัลกอริธึมในแหล่งกำเนิดไม่ได้พิจารณาพื้นที่ที่มีอยู่ของอินพุตและพิจารณาเฉพาะพื้นที่พิเศษในขณะที่คำนวณความซับซ้อนของพื้นที่
นั่นหมายความว่าจำนวนหน่วยความจำเพิ่มเติมที่จำเป็นสำหรับอัลกอริทึมไม่มากกว่าจำนวนคงที่ที่ไม่ได้ขึ้นอยู่กับขนาดอินพุตสำหรับอินพุตใหญ่เพียงพอ