ห้องปฏิบัติการอัลกอริทึม
ยินดีต้อนรับสู่ที่เก็บ อัลกอริทึมแล็บ ! โครงการนี้มีการใช้งานอัลกอริทึมต่างๆที่ออกแบบมาเพื่อทำหน้าที่เป็นทรัพยากรสำหรับการเรียนรู้การอ้างอิงและการทำงานร่วมกัน ไม่ว่าคุณจะเป็นนักเรียนนักพัฒนาหรือเพียงแค่คนที่สนใจอัลกอริทึมคุณจะพบรหัสและคำอธิบายที่มีประโยชน์ที่นี่
รวมอัลกอริทึม
อัลกอริทึมค้นหา
- การค้นหาเชิงเส้น : อัลกอริทึมการค้นหาอย่างง่ายที่ตรวจสอบแต่ละองค์ประกอบของรายการจนกว่าจะพบองค์ประกอบที่ต้องการ
- การค้นหาแบบไบนารี : อัลกอริทึมที่มีประสิทธิภาพสำหรับการค้นหารายการจากรายการที่เรียงลำดับของรายการลดความซับซ้อนของเวลาเป็น O (log n)
อัลกอริทึมกราฟ
- การค้นหาแบบกว้างก่อน (BFS) : อัลกอริทึมสำหรับการสำรวจหรือค้นหาโครงสร้างข้อมูลกราฟเริ่มต้นจากโหนดรูทและสำรวจเพื่อนบ้านทั้งหมดในระดับความลึกปัจจุบันก่อนที่จะย้ายไปยังโหนดในระดับลึกถัดไป
- การค้นหาเชิงลึกครั้งแรก (DFS) : อัลกอริทึมสำหรับการสำรวจหรือการค้นหาโครงสร้างข้อมูลกราฟหรือโครงสร้างข้อมูลเริ่มต้นที่รูทและสำรวจเท่าที่จะทำได้ในแต่ละสาขาก่อนที่จะย้อนรอย
การเรียงลำดับอัลกอริทึม
- Merge Sort : อัลกอริทึมการแบ่งแยกและพิชิตที่แยกอาร์เรย์ออกเป็นครึ่งเรียงกันแล้วรวมเข้าด้วยกัน
- การจัดเรียงอย่างรวดเร็ว : อัลกอริทึมการเรียงลำดับการแบ่งแยกและพิชิตที่มีประสิทธิภาพ
โครงสร้างข้อมูล
- อัลกอริทึมฮีป : การใช้โครงสร้างข้อมูลฮีปและการดำเนินการที่เกี่ยวข้อง
การเขียนโปรแกรมแบบไดนามิก
- อัลกอริทึมการตัดแบบก้าน : ปัญหาการเพิ่มประสิทธิภาพที่เกี่ยวข้องกับการตัดก้านเป็นชิ้นเล็ก ๆ เพื่อเพิ่มผลกำไร
ไฟล์
-
linear_search.cpp : การใช้อัลกอริทึมการค้นหาเชิงเส้น -
binary_search.cpp : การใช้อัลกอริทึมการค้นหาแบบไบนารี -
breadth_first_search.cpp : การใช้อัลกอริทึมการค้นหาแบบกว้างก่อน -
depth_first_search.cpp : การใช้อัลกอริทึมการค้นหาเชิงลึกครั้งแรก -
heap_algorithm.cpp : การใช้อัลกอริทึม HEAP -
merge_sort.cpp : การใช้อัลกอริทึมการเรียงลำดับการผสาน -
quicksort.cpp : การใช้อัลกอริทึมการเรียงลำดับด่วน -
rod_cutting.cpp : การใช้อัลกอริทึมการตัดก้าน
แนวทางการบริจาค
เรายินดีต้อนรับการมีส่วนร่วมจากชุมชน! นี่คือวิธีที่คุณสามารถมีส่วนร่วม:
- รายงานข้อบกพร่อง : หากคุณพบข้อบกพร่องหรือปัญหาใด ๆ โปรดรายงานโดยใช้ตัวติดตามปัญหา
- ปรับปรุงเอกสาร : ช่วยเราปรับปรุงเอกสารและทำให้ผู้อื่นเข้าใจรหัสได้ง่ายขึ้น
- เพิ่มประสิทธิภาพรหัส : แนะนำการเพิ่มประสิทธิภาพหรือการปรับปรุงการใช้งานที่มีอยู่
- เพิ่มอัลกอริทึมใหม่ : หากมีอัลกอริทึมที่ไม่ครอบคลุมที่นี่อย่าลังเลที่จะนำไปใช้และส่งคำขอดึง
วิธีการมีส่วนร่วม
- แยกที่เก็บ บน GitHub
- โคลนส้อมของคุณ ไปยังเครื่องในพื้นที่ของคุณโดยใช้คำสั่งต่อไปนี้:
git clone https://github.com/imashiqe/algorithm_lab.git
- สร้างสาขาใหม่ สำหรับคุณสมบัติหรือการแก้ไขข้อบกพร่องของคุณ
- กระทำการเปลี่ยนแปลงของคุณ ด้วยคำอธิบายที่ชัดเจนเกี่ยวกับสิ่งที่คุณทำ
- ผลักดันไปยังสาขาของคุณ บน GitHub
- ส่งคำขอดึง ไปยังที่เก็บหลัก
ใบอนุญาต
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT - ดูไฟล์ใบอนุญาตสำหรับรายละเอียด