ไม่ได้เขียนตัวอย่างโค้ด อยากรู้เมื่อไหร่สามารถถาม AI ได้ทุกเมื่อ
JavaScript Algorithms
1. การจัดเรียงข้อมูล (Sorting Algorithms)
Algorithm | Description |
---|---|
Bubble Sort | เปรียบเทียบข้อมูลทีละคู่และสลับตำแหน่งถ้าลำดับผิด เพื่อทำให้ข้อมูลเรียงจากต้นจนจบ |
Selection Sort | เลือกค่าที่เล็กที่สุดในช่วงที่เหลือ และสลับกับตำแหน่งปัจจุบันทีละขั้นตอน |
Insertion Sort | นำค่ามาแทรกในตำแหน่งที่เหมาะสมของรายการที่จัดเรียงแล้ว |
Merge Sort | แบ่งข้อมูลออกเป็นส่วนย่อยๆ และรวมกลับเข้าด้วยกันโดยเรียงลำดับ |
Quick Sort | เลือกค่าหนึ่งเป็น pivot แล้วแบ่งข้อมูลออกเป็นสองส่วน จากนั้นเรียงลำดับแต่ละส่วนแยกกัน |
Heap Sort | ใช้โครงสร้าง heap ในการจัดเรียงข้อมูล โดยสร้าง max heap หรือน้อยสุดแล้วดึงค่าออกทีละตัว |
Radix Sort | เรียงลำดับข้อมูลตัวเลขทีละหลัก โดยเริ่มจากหลักหน่วยไปยังหลักสูงสุด |
2. การค้นหา (Searching Algorithms)
Algorithm | Description |
---|---|
Linear Search | ค้นหาค่าในรายการโดยตรวจสอบแต่ละค่าทีละตัวจากต้นจนจบ |
Binary Search | ค้นหาในข้อมูลที่เรียงลำดับ โดยแบ่งครึ่งช่วงข้อมูลเพื่อลดขอบเขตการค้นหา |
Jump Search | กระโดดข้ามค่าด้วยช่วงคงที่ แล้วค้นหาแบบเชิงเส้นในช่วงย่อย |
Exponential Search | เพิ่มขอบเขตการค้นหาแบบทวีคูณจนกว่าจะเจอช่วงที่มีค่าที่ต้องการ |
3. อัลกอริทึมเกี่ยวกับกราฟ (Graph Algorithms)
Algorithm | Description |
---|---|
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)
Algorithm | Description |
---|---|
Binary Search | ค้นหาในข้อมูลที่เรียงลำดับ โดยแบ่งครึ่งขอบเขตการค้นหา |
Merge Sort | แบ่งข้อมูลออกเป็นส่วนเล็กที่สุด แล้วรวมกลับโดยเรียงลำดับ |
Quick Sort | ใช้ pivot แบ่งข้อมูลออกเป็นสองส่วนแล้วจัดเรียงทีละส่วน |
Strassen’s Matrix Multiplication | คูณเมทริกซ์โดยใช้วิธีการแบ่งเมทริกซ์เป็นส่วนย่อยเพื่อเพิ่มประสิทธิภาพ |
5. อัลกอริทึมเชิงไดนามิก (Dynamic Programming)
Algorithm | Description |
---|---|
Fibonacci Sequence | คำนวณลำดับ Fibonacci โดยใช้การเก็บผลลัพธ์ที่เคยคำนวณแล้ว |
Knapsack Problem | หาแนวทางเลือกของให้มูลค่าสูงสุดโดยจำกัดน้ำหนักที่สามารถบรรจุได้ |
Longest Common Subsequence (LCS) | หา subset ที่เป็นลำดับร่วมที่ยาวที่สุดระหว่างสองสตริง |
Longest Increasing Subsequence (LIS) | หา subset ที่เพิ่มขึ้นต่อเนื่องยาวที่สุดในรายการ |
Matrix Chain Multiplication | หาวิธีคูณเมทริกซ์หลายตัวโดยลดจำนวนครั้งในการคูณ |
6. อัลกอริทึมเกี่ยวกับการเรียงลำดับตามลำดับที่ดีที่สุด (Greedy Algorithms)
Algorithm | Description |
---|---|
Activity Selection Problem | เลือกกิจกรรมที่ไม่ทับซ้อนกันให้ได้จำนวนสูงสุด |
Huffman Encoding | สร้างรหัสบีบอัดข้อมูลที่ใช้พื้นที่น้อยที่สุด |
Kruskal’s Algorithm | สร้าง MST โดยเลือกเส้นทางที่มีค่าน้อยที่สุด |
Prim’s Algorithm | สร้าง MST โดยเพิ่มจุดเชื่อมโยงที่มีค่าน้ำหนักน้อยที่สุด |
7. อัลกอริทึมเกี่ยวกับสตริง (String Algorithms)
Algorithm | Description |
---|---|
Knuth-Morris-Pratt (KMP) Algorithm | ค้นหาสตริงย่อยในสตริงหลักโดยใช้เทคนิคการเลื่อนแบบประหยัด |
Rabin-Karp Algorithm | ค้นหาสตริงย่อยโดยใช้ค่าฟังก์ชันแฮชเพื่อตรวจสอบความเหมือน |
Z Algorithm | ค้นหารูปแบบในสตริงโดยคำนวณค่าการจับคู่ล่วงหน้า |
Manacher’s Algorithm | หา palindrome ที่ยาวที่สุดที่มีในสตริง |
8. การจัดการข้อมูล (Data Structure Algorithms)
Algorithm | Description |
---|---|
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)
Algorithm | Description |
---|---|
Greatest Common Divisor (GCD) | คำนวณตัวหารร่วมมากของตัวเลขสองจำนวน |
Least Common Multiple (LCM) | คำนวณตัวคูณร่วมน้อยของตัวเลขสองจำนวน |
Sieve of Eratosthenes | หาเลขเฉพาะทั้งหมดที่น้อยกว่าหรือเท่ากับค่าที่กำหนด |
Modular Exponentiation | คำนวณเลขยกกำลังโมดูโลอย่างมีประสิทธิภาพ |