คำถามติดแท็ก runtime-analysis

คำถามเกี่ยวกับวิธีการประเมินการเพิ่มขึ้นของรันไทม์ของอัลกอริทึมเมื่อขนาดอินพุตเพิ่มขึ้น

1
การแก้ไขความสัมพันธ์ที่เกิดซ้ำกับการโทรซ้ำสองครั้ง
ฉันกำลังศึกษารันไทม์กรณีที่เลวร้ายที่สุดของ quicksort ภายใต้เงื่อนไขที่ว่าจะไม่ทำมากพาร์ทิชันไม่สมดุลสำหรับคำจำกัดความที่แตกต่างของมาก ในการทำเช่นนี้ฉันถามตัวเองว่ารันไทม์ T(n,พี)T(n,p)T(n, p) จะเป็นในกรณีที่ quicksort มักจะเกิดขึ้นกับพาร์ทิชันในบางส่วน 0&lt;พี≤120&lt;p≤120 < p \leq {1\over 2} ดังนั้น ⌊พี(n-1)⌋⌊p(n−1)⌋\lfloor{p(n-1)}\rfloor องค์ประกอบอยู่ในพาร์ทิชันด้านซ้ายและ ⌈(1-พี)(n-1)⌉⌈(1−p)(n−1)⌉\lceil(1 - p)(n - 1)\rceil อยู่ในพาร์ทิชันที่เหมาะสม (ออกจาก 111 องค์ประกอบ pivot ที่อยู่ตรงกลาง) ไม่ยากที่จะเห็นว่า T(n,พี)T(n,p)T(n, p) ให้ขอบเขตบนสำหรับกรณีที่แย่ที่สุดที่ พีpp เป็นพาร์ติชันที่ได้รับอนุญาตไม่สมดุลมากที่สุดเช่นเดียวกับพาร์ทิชันที่มีเศษส่วน &gt;พี&gt;p> p จะมีความสมดุลมากขึ้นและมีรันไทม์ขนาดเล็กลงและเศษส่วนใด ๆ &lt;พี&lt;p<p ไม่อนุญาต เห็นได้ชัดว่า T(n,12)T(n,12)T(n, {1 \over 2}) เป็นกรณีที่ดีที่สุดและ T(n,0)T(n,0)T(n, 0)เป็นกรณีที่แย่ที่สุดของ quicksort …

3
Big O: ซ้อนกันสำหรับวนรอบกับการพึ่งพา
ฉันได้รับการบ้านด้วย Big O. ฉันติดอยู่กับรังซ้อนสำหรับลูปที่ขึ้นอยู่กับลูปก่อนหน้านี้ นี่คือคำถามการทำการบ้านของฉันเนื่องจากฉันต้องการที่จะเข้าใจจริงๆ: sum = 0; for (i = 0; i &lt; n; i++ for (j = 0; j &lt; i; j++) sum++; ส่วนที่ขว้างฉันไปคือj &lt; iส่วนหนึ่ง ดูเหมือนว่ามันจะดำเนินการเหมือนแฟคทอเรียล แต่มีการเพิ่มเติม คำแนะนำใด ๆ ที่จะได้รับการชื่นชมจริงๆ

3
Quicksort มีรันไทม์สมการกำลังสองเสมอหรือไม่ถ้าคุณเลือกองค์ประกอบสูงสุดเป็น pivot
หากคุณมีอัลกอริทึมการเรียงลำดับอย่างรวดเร็วและคุณเลือกองค์ประกอบที่เล็กที่สุด (หรือใหญ่ที่สุด) เป็นเดือยของคุณ ฉันถูกสมมติว่าถ้าคุณให้ชุดข้อมูลที่เรียงแล้วคุณจะได้รับประสิทธิภาพกรณีที่เลวร้ายที่สุดโดยไม่คำนึงว่ารายการ 'เรียงแล้ว' ของคุณอยู่ในลำดับขึ้นหรือลง ความคิดของฉันคือถ้าคุณเลือกองค์ประกอบที่เล็กที่สุดสำหรับเดือยของคุณไม่ว่าอินพุต 'เรียงแล้ว' ของคุณจะถูกเรียงลำดับจากน้อยไปมากหรือจากมากไปหาน้อยไม่สำคัญเพราะเซตย่อยที่เลือกให้เรียงกับเดือยของคุณจะเป็น ขนาดเดียวกัน?

1
ทำไมความซับซ้อนของการลบรอบการลบ
เราต้องการแก้ปัญหาการไหลของต้นทุนที่น้อยที่สุดด้วยอัลกอริทึมการยกเลิกเชิงลบทั่วไป นั่นคือเราเริ่มต้นด้วยการไหลที่ถูกต้องแบบสุ่มและจากนั้นเราจะไม่เลือกวัฏจักรเชิงลบ "ดี" ใด ๆ เช่นรอบต้นทุนเฉลี่ยขั้นต่ำสุด แต่ใช้ Bellman-Ford เพื่อค้นหารอบที่น้อยที่สุดและเพิ่มตามรอบการค้นพบ Letเป็นจำนวนโหนดในกราฟจำนวนขอบความจุสูงสุดของขอบในกราฟและVVVAAAยูยูUWWWค่าใช้จ่ายสูงสุดของขอบในกราฟ จากนั้นสื่อการเรียนรู้ของฉันอ้างสิทธิ์: ค่าใช้จ่ายสูงสุดที่จุดเริ่มต้นต้องไม่เกิน UWAยูWAUW การเพิ่มไปตามวัฏจักรลบหนึ่งครั้งจะช่วยลดต้นทุนได้อย่างน้อยหนึ่งหน่วย ขอบล่างสำหรับต้นทุนต่ำสุดคือ 0 เพราะเราไม่อนุญาตให้มีค่าใช้จ่ายติดลบ แต่ละรอบการลบสามารถพบได้ใน O ( Vก)O(VA)O(VA) และพวกเขาก็ทำตามความซับซ้อนของอัลกอริทึม O(V2UW)O(V2AยูW)O(V^2AUW). ฉันเข้าใจเหตุผลที่อยู่เบื้องหลังการอ้างสิทธิ์แต่ละข้อ แต่คิดว่าความซับซ้อนนั้นแตกต่างกัน โดยเฉพาะจำนวนสูงสุดของการเพิ่มจะได้รับจากหนึ่งหน่วยของการไหลต่อการเสริมการใช้ค่าใช้จ่ายจากUWAยูWAUW ถึงศูนย์ทำให้เราได้มากที่สุด UWAยูWAUWaugmentations เราจำเป็นต้องค้นพบวัฏจักรเชิงลบสำหรับแต่ละดังนั้นเราจึงเพิ่มจำนวนสูงสุดของการขยายเวลาที่จำเป็นในการค้นพบรอบ (VAVAVA) และมาถึงที่ โอ(A2VยูW)O(A2VยูW)O(A^2VUW) สำหรับอัลกอริทึม นี่อาจเป็นข้อผิดพลาดในสื่อการเรียนรู้ (นี่เป็นข้อความที่อาจารย์ให้ไว้ไม่ใช่จากบันทึกของนักเรียนจากหลักสูตร) ​​หรือเหตุผลของฉันผิด?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.