การสร้างภาพอัลกอริทึมในโลกแห่งความเป็นจริง
ภาพรวม
ที่เก็บนี้มีการสร้างภาพข้อมูลของอัลกอริทึมที่ซับซ้อนหลายอย่างที่ฉันสร้างขึ้นเป็นส่วนหนึ่งของคลาสอัลกอริทึมในโลกแห่งความเป็นจริงของฉันโดยใช้ Bridges API Visualizers แสดงให้เห็นว่าอัลกอริทึมต่างๆทำงานอย่างไรในทางปฏิบัติโดยให้วิธีการแบบโต้ตอบและภาพเพื่อทำความเข้าใจพฤติกรรมและประสิทธิภาพของพวกเขา คุณสามารถสำรวจการสร้างภาพข้อมูลได้ที่ Bridges-CS
อัลกอริทึมครอบคลุม
ตลอดหลักสูตรฉันใช้และมองเห็นอัลกอริทึมต่อไปนี้:
1. อัลกอริทึมการเรียงลำดับ
- การเรียงลำดับการเรียงลำดับ : อัลกอริทึมการเรียงลำดับการแบ่งและพิชิตด้วยความซับซ้อนของเวลาของ O (n log n)
- Quicksort : อัลกอริทึมการเรียงลำดับที่มีประสิทธิภาพอีกอย่างหนึ่งที่ใช้งานได้โดยการแบ่งพาร์ติชันอาร์เรย์และเรียงลำดับพาร์ติชันซ้ำ
2. การแสดงกราฟและการสำรวจ
- การค้นหาแบบกว้างก่อน (BFS) : สำรวจโหนดทั้งหมดที่ระดับความลึกในปัจจุบันก่อนที่จะย้ายไปที่โหนดในระดับความลึกถัดไป
- การค้นหาเชิงลึกครั้งแรก (DFS) : สำรวจให้ไกลที่สุดในแต่ละสาขาก่อนที่จะย้อนรอย
- แอปพลิเคชัน : นำไปใช้ BFS เพื่อคำนวณหมายเลขเบคอนและสำรวจการแสดงกราฟโดยใช้รายการ adjacency และเมทริกซ์
3. อัลกอริทึมกราฟ
- อัลกอริทึมเส้นทางที่สั้นที่สุดของ Dijkstra : ค้นหาเส้นทางที่สั้นที่สุดระหว่างโหนดในกราฟ
- Tree -Spanning Tree (MST) ขั้นต่ำของ Prim : คำนวณต้นไม้ที่ครอบคลุมขั้นต่ำของกราฟ
- โครงการ : ใช้การวิเคราะห์เส้นทางที่สั้นที่สุดในข้อมูล OpenStreetMap และกึ่งกลางที่สกัดจากโครงสร้างท่อโดยใช้ MST
4. การจับคู่สตริง
- อัลกอริทึมของ Horspool : อัลกอริทึมการจับคู่สตริงที่มีประสิทธิภาพที่ใช้ในโครงการจัดเรียงลำดับยีนทำให้สามารถจัดตำแหน่งทั้งทั่วโลกและท้องถิ่น
5. การค้นหาและการจัดทำดัชนี
- การค้นหาแบบไบนารี : อัลกอริทึมการค้นหาเวลาลอการิทึมสำหรับการค้นหาองค์ประกอบในอาร์เรย์ที่เรียงลำดับ
- Pagerank : นำอัลกอริทึม PageRank มาใช้โดยใช้ข้อมูลนักแสดง/ภาพยนตร์ Wikipedia สำหรับการจัดทำดัชนีและการจัดอันดับเว็บเพจ
- ต้นไม้ค้นหาเชิงพื้นที่ : สำรวจโครงสร้างข้อมูลเชิงพื้นที่เช่น Quadtrees
6. อัลกอริทึมอื่น ๆ
- ปัญหาพนักงานขายการเดินทาง : ใช้ MST ของ Prim เพื่อประมาณทัวร์พนักงานขายการเดินทางของเมืองในสหรัฐอเมริกา
- ปัญหา Knapsack : ใช้เทคนิคการเขียนโปรแกรมแบบไดนามิกเพื่อแก้ปัญหาการเพิ่มประสิทธิภาพนี้
โครงการและ Visualizers
อัลกอริทึมแต่ละตัวข้างต้นถูกนำไปใช้และมองเห็นโดยใช้ Bridges API Visualizers สามารถสำรวจได้ผ่านแพลตฟอร์ม Bridges-CS โครงการเหล่านี้แสดงให้เห็นถึงการประยุกต์ใช้อัลกอริทึมที่ซับซ้อนในโลกแห่งความเป็นจริงและให้ความเข้าใจที่เข้าใจง่ายเกี่ยวกับการดำเนินการของพวกเขา
โครงการ:
- BFS และ DFS Traversal Visualizer
- ตัวค้นหาเส้นทางที่สั้นที่สุดของ Dijkstra
- ผสานการเรียงลำดับและการแสดงภาพแบบ Quicksort
- อัลกอริทึม Pagerank บนข้อมูล Wikipedia
- การจัดตำแหน่งลำดับยีน Visualizer
วิธีการวิ่ง
- โคลนที่เก็บนี้:
git clone https://github.com/sudo-amancodes/real-world-algorithms-visualizers.git
- เรียกใช้ไฟล์แล็บสำหรับห้องปฏิบัติการเฉพาะ:
เทคโนโลยีที่ใช้:
- Python: เริ่มต้นภาษาการเขียนโปรแกรมสำหรับการใช้อัลกอริทึม
- Java: ภาษาการเขียนโปรแกรมหลักสำหรับการใช้อัลกอริทึม
- Bridges API: ใช้สำหรับการสร้างการสร้างภาพข้อมูลอัลกอริทึม
การสาธิต:


ภาพหน้าจอของอินเทอร์เฟซการค้นหา Quadtree และ Quadtree