อัลกอริทึมใดที่ใช้บ่อยที่สุด
โปรดเขียนอัลกอริทึมเดียวต่อคำตอบพยายามทำให้คำตอบสั้น (หนึ่งหรือสองบรรทัด)
อัลกอริทึมใดที่ใช้บ่อยที่สุด
โปรดเขียนอัลกอริทึมเดียวต่อคำตอบพยายามทำให้คำตอบสั้น (หนึ่งหรือสองบรรทัด)
คำตอบ:
Fast Fourier Transform ปัญหาอัลกอริทึมได้รับการแก้ไขบ่อยครั้งต่อวันโดยระบบคอมพิวเตอร์จริงหรือไม่? มันจะต้องมีการปิด ดังนั้นผมจึงต้องการเสนอชื่ออัลกอริทึมคูลลีย์-Tukey FFT
การคูณ
อาจเป็นหนึ่งในอัลกอริธึมที่ไม่น่าสนใจที่สุดที่เก่าแก่ที่สุดและปัญหาที่แก้ไขได้บ่อยกว่า FFT
อัลกอริธึมเส้นทางที่สั้นที่สุดDijkstraและBellman-Ford มีอย่างน้อย 35,000 Autonomous Systems (AS) ที่ใช้งานบนอินเทอร์เน็ตในปี 2010 AS แต่ละตัวกำลังทำงานทั้ง link-state routing protocol (Dijkstra) หรือโปรโตคอลระยะทางเวกเตอร์ (Bellman-Ford) เราเตอร์ภายในหนึ่ง AS มักจะอัพเดทตารางของพวกเขาเป็นระยะทุก ๆ สองสามนาทีพูด 10
ดังนั้นจำนวนการประหาร Dijkstra & Bellman-Ford ต่อวันมีจำนวนอย่างน้อย 5 ล้าน และนั่นเป็นเพียงจากเราเตอร์
เรายังไม่ได้นับการคำนวณเส้นทางที่สั้นที่สุดจาก Google แผนที่และสิ่งที่ชอบซึ่งควรมีสัดส่วนอย่างน้อย 10 เท่า การประหารชีวิตวันละหลายพันล้านครั้งนั้นไม่ได้เกิดขึ้นจริง
ฉันคิดว่าอัลกอริทึมที่ใช้มากที่สุดคือการตรวจสอบพาริตี้ (หรืออาจเป็น CRC หรือรหัสการแก้ไขข้อผิดพลาดบางชนิด) เพราะมันปรากฏในการเข้าถึง RAM ทุกครั้ง
อัลกอริธึม Simplex - สิ่งนี้ยังไม่สามารถแข่งขันกับวิธีการจุดภายในที่ดีที่สุดได้หรือไม่ ถ้าเป็นเช่นนั้นจะต้องมีการใช้งานมาก
โดยทั่วไปแล้วคุณควรพิจารณาผู้ชนะรางวัล Kanellakisเพื่อหาแนวคิดที่มีเหตุผลด้านทฤษฎีและปฏิบัติจริง
การจับคู่การแสดงออกปกติโดยการแปลงเป็นออโต จำกัด แน่นอน - ฉันเชื่อว่าฟังก์ชัน grep ตามบรรทัดเหล่านี้
ค้นหาความลึกครั้งแรก (DFS)
มันยากที่จะคิดว่าขั้นตอนวิธีการใช้กันอย่างแพร่หลายมากขึ้นกว่าผู้ที่อยู่ในการใช้งานที่ทันสมัยของTCP : คือการหลีกเลี่ยงความแออัด , การส่งอีกครั้งอย่างรวดเร็ว แม้ว่ามันจะขึ้นอยู่กับว่าจะกำหนดสิ่งที่ตรงกับเกณฑ์สำหรับอัลกอริทึม ...
การกำจัดแบบเกาส์นี่ยังใช้ในการฝึกใช่ไหม? หากไม่แทนที่ด้วยสิ่งที่ใช้บ่อยที่สุดในการแก้ปัญหาระบบเชิงเส้น ...
SHA-1 (และฟังก์ชันแฮชโดยทั่วไป) อาจเอาชนะอัลกอริทึมอื่น ๆ ส่วนใหญ่ในแง่ของจำนวนการประหารชีวิต
อัลกอริธึมที่เกี่ยวข้องกับต้นไม้ B + ใช้สำหรับเนื้อหาของฐานข้อมูล
อัลกอริทึมการจัดตารางเวลา มีการใช้งานโดยทุกอุปกรณ์ผู้ใช้และเซิร์ฟเวอร์ทั่วโลก มีการใช้รูปแบบจำนวนมากฉันพบการอ้างอิงจำนวนมากสำหรับ "คิวข้อเสนอแนะหลายระดับ"
คำตอบนี้ตีความ "บ่อยที่สุด" ในแง่ของรอบการทำงานจริงของ CPU
เมื่อฉันเรียนรู้การใช้คอมพิวเตอร์ในยุค 70 ฉันจำได้ว่าอ่านว่าวงจรคอมพิวเตอร์ส่วนใหญ่ (อ่าน: เมนเฟรม) ใช้เพื่อการเรียงลำดับ แอปพลิเคชันทางธุรกิจต้องการการคัดแยกอย่างกว้างขวางสำหรับการวิเคราะห์และการรายงาน ฉันไม่คิดว่ามันจะมีการเปลี่ยนแปลงมากนัก แต่แน่นอนว่าแอปอื่น ๆ ที่เพิ่มขึ้นเช่นอีเมลการประมวลผลคำและอื่น ๆ - ต้องปรับเปลี่ยนการผสมผสาน เรียงลำดับเหล่านั้นมักจะเรียงลำดับเสถียร (ไม่ใช่ Quicksort) เนื่องจากจำเป็นต้องเรียงลำดับในการสืบทอดของฟิลด์เพื่อสร้างการแบ่งย่อย
แม้ว่าการพูดอย่างเคร่งครัดอัลกอริทึมที่ใช้บ่อยที่สุดคือไม่ต้องสงสัยเลยว่าสิ่งใดก็ตามที่ถูกดำเนินการโดยระบบ Windows จะรอกระบวนการเมื่อไม่มีสิ่งอื่นเกิดขึ้น ;-)
Sprase Matrix Vector ทวีคูณ
... เป็นผลงานคำนวณที่อยู่เบื้องหลังการแก้ปัญหาของระบบเชิงเส้นเกือบทั้งหมด ดังนั้นมันจะถูกเรียกใช้เมื่อใดก็ตาม
ส่วนใหญ่ของ FLOPs ในซูเปอร์คอมพิวเตอร์หรือคลัสเตอร์ใด ๆ จะถูกใช้ภายในของแผ่นพรมเบาบาง
วิธีการของนิวตัน มันใช้สำหรับการคำนวณสแควร์รูทสำหรับการคำนวณ มันสามารถใช้ในการทำโปรแกรมเชิงเส้น โดยทั่วไปแล้วมันคือการเพิ่มประสิทธิภาพ (นูน) มันสามารถใช้ในการแก้สมการเชิงอนุพันธ์ในฟิสิกส์โดยการลดการกระทำ / พลังงาน
ต้นไม้ hashing และสีแดงสีดำ
พวกเขากำลังนำไปใช้ใน STL (hash_map, map) และโปรแกรมเมอร์ทุกคนรู้ว่าคอนเทนเนอร์นั้นสะดวกอย่างไม่น่าเชื่อเมื่อใดก็ตามที่คุณต้องการเก็บข้อมูลบางอย่างที่จัดทำดัชนีโดยชนิดข้อมูลเอง
อัลกอริธึมการแก้ไขข้อผิดพลาดเช่น Reed-Solomon
http://en.wikipedia.org/wiki/Error-correcting_code#List_of_error-correcting_codes http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction
การเขียนโปรแกรมแบบไดนามิกการเขียนโปรแกรมแบบไดนามิก
ฉันคิดว่า DP ใช้ "บ่อยกว่า" กว่าอัลกอริทึมอื่น ๆ ที่อ้างถึงในแบบสำรวจจนถึงขณะนี้ ผมสรุป "บ่อยขึ้น" ในแง่ของวิธีการที่มักจะเป็นแนวความคิดขั้นตอนวิธีการที่ไม่น่ารำคาญคือการดำเนินการโดยโปรแกรมเมอร์ในชีวิตจริงมากกว่าจะมีการใช้อัลกอริทึมในการเรียกใช้เฉพาะเวลากี่ครั้ง
DP มีหลากหลายและมีหลายใบหน้า บางครั้งฉันใช้มันค่อนข้างจิตใต้สำนึกและจากนั้นก็ตระหนักในภายหลังว่าฉันทำ DP
แน่นอนว่ามีบางสิ่งที่พบได้ทั่วไปมากกว่า Dynamic Program แต่ส่วนใหญ่จะเป็นโครงสร้างข้อมูล (array, รายการที่เชื่อมโยง, แฮช)
การจับคู่สตริงใช้ตลอดเวลาในแอพพลิเคชั่นซอฟต์แวร์และในระดับฐานข้อมูล
ในกรณีที่แน่นอนมีอัลกอริทึมที่เกี่ยวข้องหลายอย่าง (KMP, Boyer-Moore) ที่มีบางอย่างที่บรรลุ sublinear คาดว่ารันไทม์ พวกเขายังน่าสนใจที่จะศึกษาจากมุมมองของ CS
การจับคู่สตริงโดยประมาณนั่นคือการจัดแนวอาจน่าสนใจกว่า คุณรู้หรือไม่คุณสมบัติ "การแก้ไขอัตโนมัติ" นอกจากนี้การค้นหาในข้อมูลสตริงที่มีเสียงดัง (เช่น DNA) จะกระทำโดยใช้การจัดแนว