Skip to content

ไม่ได้เขียนตัวอย่างโค้ด อยากรู้เมื่อไหร่สามารถถาม AI ได้ทุกเมื่อ

JavaScript Algorithms

1. การจัดเรียงข้อมูล (Sorting Algorithms)

AlgorithmDescription
Bubble Sortเปรียบเทียบข้อมูลทีละคู่และสลับตำแหน่งถ้าลำดับผิด เพื่อทำให้ข้อมูลเรียงจากต้นจนจบ
Selection Sortเลือกค่าที่เล็กที่สุดในช่วงที่เหลือ และสลับกับตำแหน่งปัจจุบันทีละขั้นตอน
Insertion Sortนำค่ามาแทรกในตำแหน่งที่เหมาะสมของรายการที่จัดเรียงแล้ว
Merge Sortแบ่งข้อมูลออกเป็นส่วนย่อยๆ และรวมกลับเข้าด้วยกันโดยเรียงลำดับ
Quick Sortเลือกค่าหนึ่งเป็น pivot แล้วแบ่งข้อมูลออกเป็นสองส่วน จากนั้นเรียงลำดับแต่ละส่วนแยกกัน
Heap Sortใช้โครงสร้าง heap ในการจัดเรียงข้อมูล โดยสร้าง max heap หรือน้อยสุดแล้วดึงค่าออกทีละตัว
Radix Sortเรียงลำดับข้อมูลตัวเลขทีละหลัก โดยเริ่มจากหลักหน่วยไปยังหลักสูงสุด

2. การค้นหา (Searching Algorithms)

AlgorithmDescription
Linear Searchค้นหาค่าในรายการโดยตรวจสอบแต่ละค่าทีละตัวจากต้นจนจบ
Binary Searchค้นหาในข้อมูลที่เรียงลำดับ โดยแบ่งครึ่งช่วงข้อมูลเพื่อลดขอบเขตการค้นหา
Jump Searchกระโดดข้ามค่าด้วยช่วงคงที่ แล้วค้นหาแบบเชิงเส้นในช่วงย่อย
Exponential Searchเพิ่มขอบเขตการค้นหาแบบทวีคูณจนกว่าจะเจอช่วงที่มีค่าที่ต้องการ

3. อัลกอริทึมเกี่ยวกับกราฟ (Graph Algorithms)

AlgorithmDescription
Breadth-First Search (BFS)ค้นหาข้อมูลในกราฟแบบกระจายตัวออกไปในทุกทิศทางจากจุดเริ่มต้น
Depth-First Search (DFS)ค้นหาในกราฟโดยไล่ลึกไปยังเส้นทางใดเส้นทางหนึ่งจนสุดก่อนย้อนกลับ
Dijkstra’s Algorithmค้นหาเส้นทางที่สั้นที่สุดจากจุดเริ่มต้นไปยังจุดปลายทาง
Bellman-Ford Algorithmหาเส้นทางที่สั้นที่สุดในกราฟ รวมถึงกราฟที่มีค่าน้ำหนักติดลบ
Floyd-Warshall Algorithmคำนวณเส้นทางที่สั้นที่สุดระหว่างทุกคู่จุดในกราฟ
Prim’s Algorithmสร้าง Minimum Spanning Tree (MST) โดยเริ่มจากจุดใดจุดหนึ่งแล้วเลือกเส้นทางที่สั้นที่สุด
Kruskal’s Algorithmสร้าง MST โดยเลือกเส้นทางที่มีค่าน้ำหนักน้อยที่สุดทีละขั้นตอน

4. การแบ่งและเอาชนะ (Divide and Conquer)

AlgorithmDescription
Binary Searchค้นหาในข้อมูลที่เรียงลำดับ โดยแบ่งครึ่งขอบเขตการค้นหา
Merge Sortแบ่งข้อมูลออกเป็นส่วนเล็กที่สุด แล้วรวมกลับโดยเรียงลำดับ
Quick Sortใช้ pivot แบ่งข้อมูลออกเป็นสองส่วนแล้วจัดเรียงทีละส่วน
Strassen’s Matrix Multiplicationคูณเมทริกซ์โดยใช้วิธีการแบ่งเมทริกซ์เป็นส่วนย่อยเพื่อเพิ่มประสิทธิภาพ

5. อัลกอริทึมเชิงไดนามิก (Dynamic Programming)

AlgorithmDescription
Fibonacci Sequenceคำนวณลำดับ Fibonacci โดยใช้การเก็บผลลัพธ์ที่เคยคำนวณแล้ว
Knapsack Problemหาแนวทางเลือกของให้มูลค่าสูงสุดโดยจำกัดน้ำหนักที่สามารถบรรจุได้
Longest Common Subsequence (LCS)หา subset ที่เป็นลำดับร่วมที่ยาวที่สุดระหว่างสองสตริง
Longest Increasing Subsequence (LIS)หา subset ที่เพิ่มขึ้นต่อเนื่องยาวที่สุดในรายการ
Matrix Chain Multiplicationหาวิธีคูณเมทริกซ์หลายตัวโดยลดจำนวนครั้งในการคูณ

6. อัลกอริทึมเกี่ยวกับการเรียงลำดับตามลำดับที่ดีที่สุด (Greedy Algorithms)

AlgorithmDescription
Activity Selection Problemเลือกกิจกรรมที่ไม่ทับซ้อนกันให้ได้จำนวนสูงสุด
Huffman Encodingสร้างรหัสบีบอัดข้อมูลที่ใช้พื้นที่น้อยที่สุด
Kruskal’s Algorithmสร้าง MST โดยเลือกเส้นทางที่มีค่าน้อยที่สุด
Prim’s Algorithmสร้าง MST โดยเพิ่มจุดเชื่อมโยงที่มีค่าน้ำหนักน้อยที่สุด

7. อัลกอริทึมเกี่ยวกับสตริง (String Algorithms)

AlgorithmDescription
Knuth-Morris-Pratt (KMP) Algorithmค้นหาสตริงย่อยในสตริงหลักโดยใช้เทคนิคการเลื่อนแบบประหยัด
Rabin-Karp Algorithmค้นหาสตริงย่อยโดยใช้ค่าฟังก์ชันแฮชเพื่อตรวจสอบความเหมือน
Z Algorithmค้นหารูปแบบในสตริงโดยคำนวณค่าการจับคู่ล่วงหน้า
Manacher’s Algorithmหา palindrome ที่ยาวที่สุดที่มีในสตริง

8. การจัดการข้อมูล (Data Structure Algorithms)

AlgorithmDescription
Stack Operationsการทำงานกับ stack เช่น push, pop, peek โดยใช้หลักการ LIFO
Queue Operationsการทำงานกับ queue เช่น enqueue, dequeue โดยใช้หลักการ FIFO
Linked List Operationsการเพิ่ม ลบ และค้นหาในโครงสร้าง linked list
Binary Search Tree (BST) Operationsการเพิ่ม ลบ และค้นหาใน BST
Hash Table Operationsการเพิ่ม ลบ และค้นหาใน hash table โดยใช้ฟังก์ชันแฮช

9. อัลกอริทึมเกี่ยวกับเลขคณิต (Mathematical Algorithms)

AlgorithmDescription
Greatest Common Divisor (GCD)คำนวณตัวหารร่วมมากของตัวเลขสองจำนวน
Least Common Multiple (LCM)คำนวณตัวคูณร่วมน้อยของตัวเลขสองจำนวน
Sieve of Eratosthenesหาเลขเฉพาะทั้งหมดที่น้อยกว่าหรือเท่ากับค่าที่กำหนด
Modular Exponentiationคำนวณเลขยกกำลังโมดูโลอย่างมีประสิทธิภาพ

Released under the MIT License