>> สิ่งที่ถูกต้องเพื่อให้คอมพิวเตอร์ที่ซับซ้อน
เพียงเล็กน้อยของคำเตือน ก่อนที่เราจะดำน้ำใน far-- เกินไป
นี้อาจจะเป็นหนึ่งใน สิ่งที่มากที่สุดคณิตศาสตร์หนัก
เราพูดคุยเกี่ยวกับใน CS50
หวังว่ามันจะไม่เป็นอย่างท่วมท้นเกินไป และเราจะพยายามและแนะนำคุณ
ผ่านกระบวนการ แต่ เพียงเล็กน้อยของคำเตือนที่เป็นธรรม
มีนิด ๆ หน่อย ๆ เป็น คณิตศาสตร์เกี่ยวข้องกับที่นี่
สิทธิทั้งหมดดังนั้นในการที่จะทำให้ การใช้ทรัพยากรคอมพิวเตอร์ของเรา
ใน world-- จริงก็จริงๆ สำคัญที่จะเข้าใจขั้นตอนวิธีการ
และวิธีการประมวลผลข้อมูล
ถ้าเรามีจริงๆ อัลกอริทึมที่มีประสิทธิภาพเรา
สามารถลดปริมาณของทรัพยากร เราได้มีการจัดการกับมัน
ถ้าเรามีขั้นตอนวิธีการที่ จะใช้เวลามากในการทำงาน
ในการประมวลผลจริงๆ ชุดข้อมูลขนาดใหญ่ก็
จะต้องมีมากขึ้น และทรัพยากรมากขึ้นซึ่ง
คือเงิน, RAM, ทุกชนิดของสิ่งที่
>> ดังนั้นความสามารถในการวิเคราะห์ ขั้นตอนวิธีการใช้ชุดเครื่องมือนี้
โดยทั่วไปจะถามคำถามของ วิธีการที่ไม่ขนาดขั้นตอนวิธีนี้
ในขณะที่เราโยนข้อมูลมากขึ้นที่มันได้หรือไม่
ใน CS50, จำนวนของข้อมูลที่เรา การทำงานร่วมกับมีขนาดเล็กสวย
โดยทั่วไปโปรแกรมของเราจะไป ที่จะทำงานในสองหรือ less--
อาจจะมากน้อย โดยเฉพาะอย่างยิ่งในช่วงต้น
>> แต่คิดเกี่ยวกับ บริษัท ที่ข้อเสนอ มีหลายร้อยล้านของลูกค้า
และพวกเขาต้องการที่จะดำเนินการ ว่าข้อมูลของลูกค้า
ขณะที่จำนวนของลูกค้าที่พวกเขา มีได้รับใหญ่และขนาดใหญ่
มันจะต้องใช้ ทรัพยากรมากขึ้น
วิธีทรัพยากรอื่น ๆ อีกมากมาย?
ดีที่ขึ้นอยู่กับว่า เราจะวิเคราะห์ขั้นตอนวิธี
โดยใช้เครื่องมือในกล่องเครื่องมือนี้
เมื่อเราพูดคุยเกี่ยวกับความซับซ้อนของ algorithm-- ซึ่งบางครั้งคุณจะ
ได้ยินมันเรียกว่าเวลา ความซับซ้อนหรือความซับซ้อนพื้นที่
แต่เรากำลังจะ ที่จะเรียก complexity--
โดยทั่วไปเรากำลังพูดคุยเกี่ยวกับ สถานการณ์ที่เลวร้ายที่สุดกรณี
ได้รับการกองที่เลวร้ายที่สุดแน่นอนของ ข้อมูลที่เราจะได้รับการขว้างปาที่มัน
วิธีการขั้นตอนวิธีนี้จะ ดำเนินการหรือจัดการกับข้อมูลที่?
โดยทั่วไปเราเรียกว่าเลวร้ายที่สุดกรณี รันไทม์ของอัลกอริทึมใหญ่-O
ดังนั้นขั้นตอนวิธีการอาจจะกล่าวได้ว่า ทำงานในโอ n หรือโอ n ยกกำลังสอง
และอื่น ๆ เกี่ยวกับสิ่งที่ เหล่านั้นหมายถึงในครั้งที่สอง
>> บางครั้งแม้ว่าเราจะดูแล เกี่ยวกับกรณีที่ดีที่สุด
หากข้อมูลมีทุกอย่างที่เราต้องการ ว่ามันจะเป็นและมันก็เป็นอย่างสมบูรณ์แบบ
และเราก็ส่งที่สมบูรณ์แบบนี้ ชุดของข้อมูลผ่านขั้นตอนวิธีการของเรา
ว่ามันจะจัดการในสถานการณ์ที่?
บางครั้งเราหมายถึงว่า โอเมก้าขนาดใหญ่ดังนั้นในทางตรงกันข้ามกับใหญ่โอ
เรามีขนาดใหญ่โอเมก้า
บิ๊กโอเมก้าสำหรับกรณีที่ดีที่สุด
Big-O สำหรับสถานการณ์ที่เลวร้ายที่สุดกรณี
โดยทั่วไปเมื่อเราพูดคุยเกี่ยวกับ ความซับซ้อนของขั้นตอนวิธีการ
เรากำลังพูดถึง สถานการณ์ที่เลวร้ายที่สุดกรณี
ดังนั้นเก็บที่ในใจ
>> และในชั้นนี้เรากำลังจะโดยทั่วไป ที่จะออกจากการวิเคราะห์กันอย่างเข้มงวด
มีวิทยาศาสตร์และสาขาที่มี อุทิศให้กับชนิดของสิ่งนี้
เมื่อเราพูดถึงเหตุผล ผ่านขั้นตอนวิธี
ซึ่งเราจะทำชิ้นโดยชิ้นส่วนสำหรับหลาย ๆ คน ขั้นตอนวิธีการที่เราพูดคุยเกี่ยวกับในชั้นเรียน
เรากำลังจริงๆเพียงแค่พูดคุยเกี่ยวกับ เหตุผลผ่านมันด้วยความรู้สึกร่วมกัน
ไม่ได้อยู่กับสูตรหรือบทพิสูจน์ หรืออะไรอย่างนั้น
ดังนั้นไม่ต้องกังวลเราจะไม่เป็น กลายเป็นชั้นเรียนคณิตศาสตร์ใหญ่
>> ดังนั้นผมจึงบอกว่าเราดูแลเกี่ยวกับความซับซ้อน เพราะจะถามคำถามที่ว่า
ขั้นตอนวิธีการของเราจะจัดการกับขนาดใหญ่และ ชุดข้อมูลขนาดใหญ่ที่ถูกโยนไปที่พวกเขา
ดีสิ่งที่เป็นชุดข้อมูลที่?
สิ่งที่ผมหมายถึงเมื่อผมบอกว่า?
มันหมายความว่าอะไรก็ตามที่ทำให้ส่วนใหญ่ ความรู้สึกในบริบทที่จะซื่อสัตย์
ถ้าเรามีขั้นตอนวิธีการที่ กระบวนการ Strings-- เราอาจจะ
พูดคุยเกี่ยวกับขนาดของสตริง
นั่นคือข้อมูล set-- ขนาดจำนวน
ของตัวละครที่ทำขึ้นสตริง
ถ้าเราพูดคุยเกี่ยวกับ อัลกอริทึมที่ประมวลผลไฟล์
เราอาจจะมีการพูดคุยเกี่ยวกับวิธีการ หลายกิโลไบต์ประกอบด้วยแฟ้มที่
และนั่นคือข้อมูลที่กำหนด
ถ้าเราพูดคุยเกี่ยวกับขั้นตอนวิธี ที่จัดการอาร์เรย์มากกว่าปกติ
เช่นการเรียงลำดับขั้นตอนวิธีการ หรือการค้นหาขั้นตอนวิธี
เราอาจจะพูดคุยเกี่ยวกับจำนวน ขององค์ประกอบที่ประกอบด้วยอาร์เรย์
>> ตอนนี้เราสามารถวัด algorithm-- โดยเฉพาะอย่างยิ่ง
เมื่อฉันบอกว่าเราสามารถทำได้ ขั้นตอนวิธีการวัดที่ฉัน
หมายถึงการที่เราสามารถวัดว่า ทรัพยากรจำนวนมากก็จะขึ้น
ไม่ว่าจะเป็นทรัพยากรเหล่านั้นมีหลายวิธี ไบต์ของ RAM-- หรือเมกะไบต์ RAM
จะใช้
หรือวิธีการมากเวลาที่ใช้ในการทำงาน
และเราสามารถเรียกสิ่งนี้ วัดพลฉของ n
ที่ n คือจำนวนของ องค์ประกอบในชุดข้อมูล
และฉของ n เป็นจำนวน somethings
วิธีการหลายหน่วยของทรัพยากรไม่ มันต้องมีการประมวลผลข้อมูลที่
>> ตอนนี้เราจะไม่สนใจ เกี่ยวกับสิ่งที่ฉของ n คือว่า
ในความเป็นจริงเรามากไม่ค่อย will-- แน่นอนจะไม่เคยอยู่ในฉัน class-- นี้
ดำน้ำในลึกจริงๆใด ๆ วิเคราะห์สิ่งที่ฉของ n คือ
เรากำลังจะพูดคุยเกี่ยวกับสิ่งที่เอฟของ n คือประมาณหรือสิ่งที่มีแนวโน้มที่จะ
และแนวโน้มของอัลกอริทึมที่มี กำหนดโดยคำสั่งซื้อสูงสุด
และเราสามารถเห็นสิ่งที่ฉัน หมายถึงว่าด้วยการ
ดูที่ตัวอย่างที่เป็นรูปธรรมมากขึ้น
>> ดังนั้นขอบอกว่าเรามี ขั้นตอนวิธีการที่แตกต่างกันสาม
คนแรกที่จะใช้เวลา n คีบบางหน่วยของทรัพยากร
ในการประมวลผลชุดข้อมูลขนาด n
เรามีขั้นตอนวิธีที่สองที่ต้องใช้เวลา n คีบยกกำลังสองบวกทรัพยากร n
ในการประมวลผลชุดข้อมูลขนาด n
และเรามีสาม อัลกอริทึมที่ทำงาน in-- ว่า
จะขึ้นคีบ n ลบยืด 8N บวก 20 n หน่วยของทรัพยากร
ที่จะดำเนินการขั้นตอนวิธี กับชุดข้อมูลขนาด n
>> ตอนนี้อีกครั้งเราจะไม่ได้ไป จะได้รับในระดับของรายละเอียดนี้
ฉันจริงๆเพียงแค่ต้องเหล่านี้ขึ้น นี่เป็นตัวอย่างของจุดหนึ่ง
ว่าฉันจะเป็น ทำให้ในครั้งที่สองซึ่ง
คือการที่เราดูแลเท่านั้นจริงๆ เกี่ยวกับแนวโน้มของสิ่งที่
เป็นชุดข้อมูลได้รับใหญ่
ดังนั้นหากข้อมูลชุดที่มีขนาดเล็กมี จริงความแตกต่างใหญ่สวย
ในขั้นตอนวิธีการเหล่านี้
อัลกอริทึมที่สามมีงาน ใช้เวลา 13 ครั้งอีกต่อไป
13 ครั้งจำนวนของทรัพยากร เพื่อให้ทำงานได้เมื่อเทียบกับครั้งแรกหนึ่ง
>> หากตั้งข้อมูลของเรามีขนาด 10 ซึ่ง มีขนาดใหญ่ แต่ไม่จำเป็นต้องใหญ่
เราจะเห็นว่ามี จริงบิตที่แตกต่าง
อัลกอริทึมที่สาม กลายเป็นมีประสิทธิภาพมากขึ้น
มันเป็นเรื่องจริง 40% - หรือ 60% มีประสิทธิภาพมากขึ้น
มันต้องใช้เวลา 40% ระยะเวลาที่
มันสามารถ run-- ก็สามารถใช้ 400 หน่วยของทรัพยากร
ในการประมวลผลชุดข้อมูลที่มีขนาด 10
ในขณะที่แรก อัลกอริทึมโดยคมชัด
ใช้เวลา 1,000 หน่วยของทรัพยากร ในการประมวลผลชุดข้อมูลที่มีขนาด 10
แต่มองสิ่งที่เกิดขึ้นเป็น ตัวเลขที่เราได้รับที่ยิ่งใหญ่
>> ตอนนี้ความแตกต่าง ระหว่างขั้นตอนวิธีการเหล่านี้
เริ่มต้นที่จะกลายเป็นเล็ก ๆ น้อย ๆ ที่เห็นได้ชัดน้อย
และความจริงที่ว่ามี สั่งซื้อที่ลดลง terms-- หรือมากกว่า
ข้อตกลงกับ exponents-- ต่ำ เริ่มต้นที่จะกลายเป็นที่ไม่เกี่ยวข้อง
หากชุดข้อมูลที่มีขนาด 1000 และขั้นตอนวิธีแรก
ทำงานในขั้นตอนพันล้าน
และอัลกอริทึมที่สองทำงานใน พันล้านและล้านขั้นตอน
และขั้นตอนวิธีการทำงานที่สาม ในเพียงขี้อายของพันล้านขั้นตอน
มันสวยมากเป็นพันล้านขั้นตอน
ผู้แง่ล่างเพื่อเริ่มต้น ที่จะกลายเป็นที่ไม่เกี่ยวข้องจริงๆ
และเพียงแค่ไปจริงๆ ค้อนบ้าน point--
ถ้าใส่ข้อมูลที่มีขนาด million-- ทั้งสามเหล่านี้สวยมาก
ใช้เวลาหนึ่งถ้า quintillion-- คณิตศาสตร์ของฉันอยู่ไม่ไกล correct--
การป้อนข้อมูลในการประมวลผลข้อมูล ขนาดล้าน
นั่นเป็นจำนวนมากของขั้นตอน
และความจริงที่ว่าหนึ่งในนั้นอาจจะ ใช้เวลาไม่กี่ 100,000 หรือคู่ 100
ล้านบาทเมื่อแม้แต่น้อย เรากำลังพูดถึงเกี่ยวกับตัวเลข
ที่ big-- เป็นประเภทที่ไม่เกี่ยวข้อง
พวกเขาทั้งหมดมีแนวโน้มที่จะใช้ ประมาณคีบ n,
และเพื่อให้เราจริงจะดู ทุกขั้นตอนวิธีการเหล่านี้
ว่าเป็นคำสั่งของ n คีบหรือใหญ่-O ของ cubed n
>> นี่คือรายการของบางส่วนของมากขึ้น เรียนคอมพิวเตอร์ที่ซับซ้อนที่พบบ่อย
ที่เราจะได้พบในการ ขั้นตอนวิธีการทั่วไป
และยังโดยเฉพาะใน CS50
เหล่านี้จะได้รับคำสั่งจาก โดยทั่วไปที่เร็วที่สุดที่ด้านบน
โดยทั่วไปที่ช้าที่สุดที่ด้านล่าง
ดังนั้นขั้นตอนวิธีการเวลาคงมีแนวโน้มที่ จะเป็นที่เร็วที่สุดโดยไม่คำนึงถึง
ขนาดของ การป้อนข้อมูลที่คุณผ่านใน
พวกเขามักจะใช้เวลาดำเนินการอย่างใดอย่างหนึ่ง หนึ่งหน่วยของทรัพยากรที่จะจัดการกับ
มันอาจจะเป็นที่ 2 มันอาจ 3 ก็อาจจะมี 4
แต่ก็มีจำนวนคงที่
มันไม่ได้แตกต่างกันไป
>> อัลกอริทึมเวลาลอการิทึม จะดีกว่าเล็กน้อย
และเป็นตัวอย่างที่ดีจริงๆ อัลกอริทึมเวลาลอการิทึม
คุณเคยเห็นอย่างแน่นอนโดยขณะนี้คือ ฉีกจากสมุดโทรศัพท์
เพื่อหาสิ่งที่ไมค์สมิ ธ ในสมุดโทรศัพท์
เราตัดปัญหาในช่วงครึ่งปี
และเพื่อให้เป็น n ขนาดใหญ่ได้รับ และมีขนาดใหญ่และ larger--
ในความเป็นจริงเวลาที่คุณเป็นสองเท่าทุก n จะใช้เวลาเพียงหนึ่งในขั้นตอนอื่น ๆ
ดังนั้นที่ดีขึ้นมาก กว่าการพูด, เส้นเวลา
ซึ่งถ้าคุณเป็นสองเท่า n มัน ใช้เวลาสองเท่าของจำนวนของขั้นตอน
หากคุณสาม n ก็จะใช้เวลา สามจำนวนของขั้นตอน
ขั้นตอนหนึ่งต่อหน่วย
>> แล้วสิ่งที่ได้รับ more-- เล็ก ๆ น้อย ๆ น้อยมากน้อยจากที่นั่น
คุณมีเวลาจังหวะเชิงเส้นบางครั้ง เข้าสู่ระบบที่เรียกว่าเส้นเวลาหรือเพียงแค่ n log n
และเราจะเป็นตัวอย่าง ขั้นตอนวิธีว่า
วิ่งใน n ล็อก n ซึ่งก็ยังดี กว่า time-- กำลังสอง n ยกกำลังสอง
หรือเวลาพหุนาม n สอง จำนวนใดมากกว่าสอง
หรือเวลาที่ชี้แจงซึ่ง แม้แต่ C worse-- เพื่อที่ n
ดังนั้นบางจำนวนคงที่ยกขึ้นไป อำนาจของขนาดของการป้อนข้อมูล
ดังนั้นหากมี 1,000-- ถ้า การป้อนข้อมูลที่มีขนาด 1,000
มันจะใช้เวลา C ถึงอำนาจ 1000
มันมากเลวร้ายยิ่งกว่าเวลาพหุนาม
>> ปัจจัยเวลาเป็นยิ่งแย่ลง
และในความเป็นจริงมีจริงๆ ขั้นตอนวิธีการที่มีอยู่เวลาที่สิ้นสุด
เช่นที่เรียกว่าโง่ที่มี sort-- งานคือการสุ่มสับเปลี่ยนอาร์เรย์
และจากนั้นตรวจสอบเพื่อดู ไม่ว่าจะเป็นการเรียง
และถ้ามันไม่ได้แบบสุ่ม สับเปลี่ยนแถวอีกครั้ง
และตรวจสอบเพื่อดูว่ามันเรียง
และในขณะที่คุณอาจจะสามารถ imagine-- คุณสามารถจินตนาการสถานการณ์
ซึ่งในกรณีที่เลวร้ายที่สุดที่จะ ไม่จริงเริ่มต้นด้วยอาร์เรย์
ขั้นตอนวิธีการที่จะทำงานตลอด
และเพื่อที่จะเป็น อัลกอริทึมเวลาที่ไม่มีที่สิ้นสุด
หวังว่าคุณจะไม่ได้เขียน เวลาปัจจัยหรือไม่มีที่สิ้นสุด
ขั้นตอนวิธีการใน CS50
>> ดังนั้นลองมาเล็ก ๆ น้อย ๆ ดูที่บางส่วนคอนกรีตที่เรียบง่าย
เรียนคอมพิวเตอร์ที่ซับซ้อน
ดังนั้นเราจึงมี example-- หรือสองตัวอย่าง here--
อัลกอริทึมเวลาคงที่ ซึ่งมักจะใช้เวลา
การทำงานครั้งเดียวในกรณีที่เลวร้ายที่สุด
ดังนั้น example-- แรก เรามีฟังก์ชั่น
ที่เรียกว่า 4 สำหรับคุณที่ ใช้เวลามากมายขนาด 1,000
แต่แล้วเห็นได้ชัดว่า ไม่จริงดู
ที่ it-- ไม่จริงๆดูแลสิ่งที่ ภายในของมันของอาเรย์ที่
เสมอเพียงผลตอบแทนที่สี่
ดังนั้นขั้นตอนวิธีการที่ แม้จะมีความจริงที่ว่ามัน
ใช้เวลา 1,000 องค์ประกอบไม่ได้ ทำอะไรกับพวกเขา
เพียงแค่ผลตอบแทนที่สี่
ก็มักจะเป็นขั้นตอนเดียว
>> ในความเป็นจริงเพิ่ม 2 nums-- ที่ ที่เราเคยเห็นมาก่อนเป็น well--
เพียงกระบวนการจำนวนเต็ม
มันไม่ได้เป็นขั้นตอนเดียว
มันเป็นขั้นตอนทั้งคู่จริง
คุณจะได้รับคุณจะได้รับ B, คุณเพิ่มพวกเขา ร่วมกันและคุณส่งออกผล
ดังนั้นจึงเป็นขั้นตอนที่ 84
แต่ก็มักจะคงที่ โดยไม่คำนึงถึงหรือ
คุณต้องได้รับรับขเพิ่ม พวกเขาร่วมกันออกผล
เพื่อให้เป็นอัลกอริทึมเวลาคง
>> นี่คือตัวอย่างของหนึ่ง algorithm-- เส้นเวลา
อัลกอริทึมที่ gets-- ที่ใช้เวลา ขั้นตอนอีกหนึ่งอาจจะเป็น
เป็นข้อมูลของคุณเติบโตขึ้นโดย 1
ดังนั้นขอบอกว่าเรากำลังมองหา จำนวน 5 ภายในอาร์เรย์
คุณอาจมีสถานการณ์ที่ คุณสามารถค้นหาได้อย่างเป็นธรรมในช่วงต้น
แต่คุณยังสามารถมี สถานการณ์ที่มัน
อาจจะเป็นองค์ประกอบสุดท้ายของอาร์เรย์
ในอาร์เรย์ของขนาด 5 ถ้า เรากำลังมองหาหมายเลขที่ 5
มันจะใช้เวลา 5 ขั้นตอน
และในความเป็นจริงคิดว่ามี 5 ไม่ได้ทุกที่ในอาร์เรย์นี้
จริงเรายังต้องมองไปที่ ทุกองค์ประกอบหนึ่งของอาร์เรย์
เพื่อตรวจสอบ หรือไม่ว่าจะมี 5
>> ดังนั้นในกรณีที่เลวร้ายที่สุดซึ่งก็คือว่า องค์ประกอบเป็นครั้งสุดท้ายในอาร์เรย์
หรือไม่อยู่ที่ทุกคน
เรายังคงต้องมองไปที่ ทุกองค์ประกอบที่ n
และเพื่อให้ขั้นตอนวิธีนี้ วิ่งในเส้นเวลา
คุณสามารถยืนยันว่าโดย คะเนนิด ๆ หน่อย ๆ ด้วยการพูดว่า
ถ้าเรามีอาร์เรย์ที่ 6 องค์ประกอบและ เรากำลังมองหาหมายเลขที่ 5
มันอาจจะใช้เวลา 6 ขั้นตอน
ถ้าเรามีอาร์เรย์ 7 องค์ประกอบและ เรากำลังมองหาหมายเลขที่ 5
มันอาจจะใช้เวลาขั้นตอนที่ 7
ในขณะที่เราเพิ่มองค์ประกอบหนึ่งที่จะของเรา อาเรย์ก็จะใช้เวลามากขึ้นในขั้นตอนเดียว
นั่นเป็นวิธีการเชิงเส้น ในกรณีที่เลวร้ายที่สุด
>> คู่คำถามอย่างรวดเร็วสำหรับคุณ
อะไรคือสิ่งที่ runtime-- ที่เลวร้ายที่สุดกรณีรันไทม์
ของตัวอย่างนี้โดยเฉพาะของรหัส?
ดังนั้นผมจึงมีวง 4 ที่นี่ที่ทำงาน จากเจเท่ากับ 0 ทั้งหมดทางขึ้นไปยังม.
และสิ่งที่ฉันเห็นที่นี่เป็นที่ ร่างกายของวงทำงานในเวลาคง
ดังนั้นการใช้คำศัพท์ที่ว่า เราได้พูดคุยแล้ว about-- สิ่งที่
จะเป็นกรณีที่เลวร้ายที่สุด รันไทม์ของขั้นตอนวิธีนี้หรือไม่?
ใช้เป็นครั้งที่สอง
ส่วนด้านในของวง วิ่งในเวลาคง
และส่วนที่ด้านนอกของ ห่วงจะไปทำงานครั้งเมตร
ดังนั้นสิ่งที่รันไทม์เลวร้ายที่สุดกรณีที่นี่?
คุณคิดว่าใหญ่ของ O m?
คุณจะได้รับสิทธิ
>> วิธีการเกี่ยวกับคนอื่น?
เวลาที่เรามีนี้ วงในของวง
เรามีห่วงด้านนอก ที่ไหลจากศูนย์ถึงพี
และเรามีห่วงด้านในที่ทำงาน จากศูนย์ถึงพีและภายในของที่
ผมว่าร่างกาย ห่วงทำงานในเวลาคง
ดังนั้นสิ่งที่รันไทม์เลวร้ายที่สุดกรณี ของตัวอย่างนี้โดยเฉพาะของรหัส?
ดีอีกครั้งที่เรามี ห่วงนอกที่ทำงานครั้งหน้า
และแต่ละซ้ำ time-- ของวงที่ค่อนข้าง
เรามีห่วงด้านใน ที่ยังทำงานครั้งหน้า
และจากนั้นภายในที่มีคือ ตัวอย่างเล็ก ๆ น้อย ๆ คงมี time--
>> ดังนั้นหากเรามีห่วงด้านนอกที่ วิ่งครั้งภายในพีซึ่งเป็น
ห่วงภายในที่ วิ่งพี times-- สิ่งที่เป็น
ที่เลวร้ายที่สุดกรณีรันไทม์ ของตัวอย่างของรหัสนี้หรือไม่?
คุณคิดว่าใหญ่โอพียืด?
>> ฉันลอยด์ดั๊ก
นี่คือ CS50