คำถามติดแท็ก big-o

สัญกรณ์ Big-O ใช้เพื่อแสดงขอบเขตด้านบนที่ไม่แสดงอาการ อธิบายถึงเวลาที่เกี่ยวข้องหรือความซับซ้อนของพื้นที่ของอัลกอริทึม การวิเคราะห์ Big-O ให้การประมาณความยากของปัญหาอย่างคร่าวๆและง่ายขึ้น


30
O (log n) หมายถึงอะไรอย่างแน่นอน
ฉันกำลังเรียนรู้เกี่ยวกับเวลาทำงานของ Big O Notation และเวลาที่ถูกตัดจำหน่าย ฉันเข้าใจความคิดของเวลาเชิงเส้นO (n)ซึ่งหมายความว่าขนาดของอินพุตมีผลต่อการเติบโตของอัลกอริทึมตามสัดส่วน ... และเช่นเดียวกันสำหรับตัวอย่างเช่นเวลากำลังสองO (n 2 )ฯลฯ อัลกอริธึมที่สิบเอ็ด เช่นเครื่องปั่นไฟที่มีการเปลี่ยนแปลงด้วยเวลาO (n!)ที่เติบโตโดยแฟกทอเรียล ตัวอย่างเช่นฟังก์ชันต่อไปนี้คือO (n)เนื่องจากอัลกอริทึมเติบโตตามสัดส่วนของอินพุตn : f(int n) { int i; for (i = 0; i < n; ++i) printf("%d", i); } ในทำนองเดียวกันหากมีการวนซ้ำซ้อนกันเวลาจะเป็น O (n 2 ) แต่O (log n)คืออะไรกันแน่? ยกตัวอย่างเช่นมันหมายความว่าอะไรที่จะบอกว่าความสูงของต้นไม้ไบนารีสมบูรณ์คือO (log n) ? ฉันรู้ (อาจไม่ได้อยู่ในรายละเอียดที่ดี) สิ่งที่ลอการิทึมคือในแง่ที่ว่า: log …

23
บิ๊กโอคุณคำนวณ / ประเมินมันอย่างไร
คนส่วนใหญ่ที่มีปริญญาใน CS จะรู้แน่นอนว่าBig O หมายถึงอะไร มันช่วยให้เราวัดว่าอัลกอริทึมปรับขนาดได้ดีแค่ไหน แต่ฉันอยากรู้คุณจะคำนวณหรือประมาณความซับซ้อนของอัลกอริทึมของคุณได้อย่างไร

9
อะไรคือความแตกต่างระหว่างΘ (n) และ O (n)
บางครั้งฉันเห็นΘ (n) ที่มีสัญลักษณ์แปลก ๆ with มีบางอย่างอยู่ตรงกลางและบางครั้งก็แค่ O (n) มันเป็นความขี้เกียจในการพิมพ์เพราะไม่มีใครรู้วิธีพิมพ์สัญลักษณ์นี้หรือว่ามันมีความแตกต่างกันบ้าง?


4
รายการฟังก์ชั่น Big-O สำหรับ PHP
หลังจากใช้ PHP มาระยะหนึ่งผมสังเกตว่าฟังก์ชั่น PHP ในตัวบางตัวนั้นไม่เร็วเท่าที่ควร พิจารณาการประยุกต์ใช้ที่เป็นไปได้ทั้งสองอย่างของฟังก์ชั่นที่ค้นหาว่าตัวเลขนั้นสำคัญเพียงใดโดยใช้อาเรย์แคชของช่วงเวลา //very slow for large $prime_array $prime_array = array( 2, 3, 5, 7, 11, 13, .... 104729, ... ); $result_array = array(); foreach( $prime_array => $number ) { $result_array[$number] = in_array( $number, $large_prime_array ); } //speed is much less dependent on size of $prime_array, and …


12
ความซับซ้อนในการคำนวณของลำดับฟีโบนักชี
ฉันเข้าใจสัญกรณ์ Big-O แต่ฉันไม่รู้วิธีคำนวณสำหรับฟังก์ชั่นมากมาย โดยเฉพาะฉันได้พยายามหาความซับซ้อนในการคำนวณของลำดับ Fibonacci รุ่นไร้เดียงสา: int Fibonacci(int n) { if (n <= 1) return n; else return Fibonacci(n - 1) + Fibonacci(n - 2); } ความซับซ้อนในการคำนวณของลำดับฟีโบนักชีคืออะไรและคำนวณอย่างไร?


5
การกำหนดความซับซ้อนสำหรับฟังก์ชั่นวนซ้ำ (สัญกรณ์ Big O)
ฉันมีวิทยาการคอมพิวเตอร์กลางภาคในวันพรุ่งนี้และฉันต้องการความช่วยเหลือในการกำหนดความซับซ้อนของฟังก์ชันเวียนเกิดเหล่านี้ ฉันรู้วิธีแก้ปัญหากรณีง่าย ๆ แต่ฉันยังคงพยายามเรียนรู้วิธีแก้ไขกรณียาก ๆ เหล่านี้ ปัญหาเหล่านี้เป็นเพียงตัวอย่างเล็ก ๆ น้อย ๆ ที่ฉันไม่สามารถเข้าใจได้ ความช่วยเหลือใด ๆ จะได้รับการชื่นชมมากและจะช่วยอย่างมากในการศึกษาของฉันขอบคุณ! int recursiveFun1(int n) { if (n <= 0) return 1; else return 1 + recursiveFun1(n-1); } int recursiveFun2(int n) { if (n <= 0) return 1; else return 1 + recursiveFun2(n-5); } int recursiveFun3(int n) { …

17
ผนวกวัตถุไปยังรายการใน R ในเวลาคงที่ตัดจำหน่าย O (1)?
หากฉันมีรายการ R บางรายการmylistคุณสามารถเพิ่มรายการต่อท้ายobjได้เช่น: mylist[[length(mylist)+1]] <- obj แต่แน่นอนว่ามีบางวิธีที่กะทัดรัดกว่า เมื่อฉันใหม่ที่ R ฉันพยายามเขียนlappend()ดังนี้: lappend <- function(lst, obj) { lst[[length(lst)+1]] <- obj return(lst) } แต่แน่นอนว่าไม่ได้ทำงานเนื่องจากความหมายของการโทรด้วยชื่อของ R ( lstถูกคัดลอกอย่างมีประสิทธิภาพเมื่อมีการโทรดังนั้นการเปลี่ยนแปลงlstจะไม่สามารถมองเห็นได้นอกขอบเขตของlappend()ฉันรู้ว่าคุณสามารถแฮ็คสภาพแวดล้อมในฟังก์ชัน R เพื่อเข้าถึงภายนอก ขอบเขตของฟังก์ชั่นของคุณและกลายสภาพแวดล้อมการโทร แต่ดูเหมือนว่าค้อนขนาดใหญ่ที่จะเขียนฟังก์ชั่นผนวกง่าย ใครช่วยแนะนำวิธีที่สวยงามกว่านี้ได้ไหม คะแนนโบนัสหากมันใช้ได้กับทั้งเวกเตอร์และลิสต์
245 r  performance  list  append  big-o 

22
มีกรณีใดบ้างที่คุณต้องการอัลกอริธึมความซับซ้อนของเวลาขนาดใหญ่ O ที่สูงกว่าตัวล่าง
มีกรณีใดบ้างที่คุณต้องการO(log n)ความซับซ้อนของO(1)เวลากับความซับซ้อนของเวลา? หรือO(n)เพื่อO(log n)? คุณมีตัวอย่างหรือไม่?

30
วิธีการค้นหาองค์ประกอบที่ใหญ่ที่สุด kth ในอาร์เรย์ที่มีความยาวไม่เรียงลำดับ n ใน O (n)?
ฉันเชื่อว่ามีวิธีการหาองค์ประกอบที่ใหญ่ที่สุด kth ในอาร์เรย์ที่มีความยาว n ใน O (n) หรืออาจเป็น "คาดหวัง" O (n) หรือบางสิ่งบางอย่าง เราจะทำสิ่งนี้ได้อย่างไร

9
บันทึก (n!) = Θ (n ·บันทึก (n)) หรือไม่
ผมจะแสดงให้เห็นว่าการเข้าสู่ระบบ ( n !) = Θ ( n ·เข้าสู่ระบบ ( n )) คำแนะนำที่ได้รับว่าผมควรจะแสดงผูกไว้บนที่มีn nและแสดงขอบเขตล่างด้วย( n / 2) ( n / 2) นี่ดูเหมือนจะไม่ง่ายสำหรับฉัน ทำไมเป็นเช่นนั้น แน่นอนฉันสามารถดูวิธีการแปลงn nเพื่อn ·เข้าสู่ระบบ ( n ) (เช่นเข้าสู่ระบบทั้งสองข้างของสมการ) แต่ที่เป็นชนิดของการทำงานย้อนหลัง อะไรคือแนวทางที่ถูกต้องในการแก้ไขปัญหานี้ ฉันควรจะวาดต้นไม้เรียกซ้ำหรือไม่? ไม่มีอะไรซ้ำซากเกี่ยวกับเรื่องนี้ดังนั้นจึงไม่น่าจะเป็นวิธีการที่น่าสนใจ ..

6
สัญลักษณ์ขนาดใหญ่หมายถึงอะไร
ฉันสับสนจริง ๆ เกี่ยวกับความแตกต่างระหว่างบิ๊กโอโอเมก้าใหญ่และสัญกรณ์ทีใหญ่ ฉันเข้าใจว่าใหญ่ O เป็นขอบเขตบนและใหญ่โอเมก้าเป็นขอบเขตล่าง แต่สิ่งที่ใหญ่Ө (theta) หมายถึงอะไร ฉันได้อ่านแล้วว่ามันหมายถึงขอบเขตที่ จำกัดแต่นั่นหมายความว่าอย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.