Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม
การเขียนโปรแกรม
  1. Selection Sort (การจัดเรียงแบบเลือก)

    Selection Sort เป็นอัลกอริทึมจัดเรียงที่ง่ายที่สุด แบ่งอาเรย์เป็น 2 ส่วน: ส่วนที่เรียงแล้ว (Sorted) และ ส่วนที่ยังไม่เรียง (Unsorted) หาค่า min/max จากส่วน Unsorted มาวางต่อท้ายส่วน Sorted ความซับซ้อน (Complexity) ประเภท ความซับซ้อน Time Complexity (All ca

  2. Shell Sort (การจัดเรียงแบบเชลล์)

    Shell Sort เป็นการปรับปรุงจาก Insertion Sort โดยเปรียบเทียบและสลับองค์ประกอบที่ห่างกันด้วย Gap (ช่องว่าง) ลดการเลื่อนข้อมูลจำนวนมากเมื่อค่าน้อยอยู่ไกลตำแหน่งที่ควรเป็น ความซับซ้อน (Complexity) กรณี Time Complexity Best Case O(n log n)

  3. Activity Selection Problem (ปัญหาเลือกกิจกรรม)

    Activity Selection Problem เป็นปัญหาเลือกกิจกรรมจำนวนมากที่สุดที่ไม่ทับซ้อนกัน (Non-overlapping) โดยแต่ละกิจกรรมมี เวลาเริ่มต้น และ เวลาสิ้นสุด ใช้แนวคิด Greedy Algorithm ความซับซ้อน (Complexity) Unsorted Input: O(n log n) (ต้องเรียงก่อน) Sorted Input: O(n) Space: O(1) เพิ่มเติม กลยุทธ์ Gr

  4. Dijkstra's Algorithm สำหรับ Adjacency List Representation

    Dijkstras Algorithm ด้วย Adjacency List (รายการความติดกัน) เหมาะสำหรับกราฟเบา (Sparse Graph) ใช้ Priority Queue (Min-Heap) ทำให้เร็วขึ้น ความซับซ้อน (Complexity) Time: O(E log V) โดย E = จำนวนขอบ, V = จำนวนโหนด Space: O(V + E) แนวคิดการทำงาน สร้าง Adjacency List: โหนดแต่ละตัวเก็บรายการ (เ

  5. Dijkstra's Shortest Path Algorithm (อัลกอริทึมเดจก์สตรา) - Adjacency Matrix

    Dijkstras Algorithm หาเส้นทางสั้นที่สุดจากโหนดต้นทางไปยังโหนดอื่นๆ ทั้งหมดในกราฟที่มีน้ำหนักขอบ (Weighted Graph) เป็นบวกทั้งหมด ใช้ Adjacency Matrix (เมทริกซ์ความติดกัน) แสดงกราฟ ความซับซ้อน (Complexity) Time: O(V²) โดย V = จำนวนโหนด (สำหรับ Adjacency Matrix) Space: O(V) แนวคิดการทำงาน เร

  6. Huffman Coding Algorithm (อัลกอริทึมฮัฟแมน)

    Huffman Coding เป็นอัลกอริทึมบีบอัดข้อมูลแบบ Lossless (ไม่สูญเสียข้อมูล) ใช้รหัสความยาวไม่เท่ากัน (Variable-length codes) โดยตัวอักษรที่พบบ่อยได้รหัสสั้น ตัวอักษรที่พบน้อยได้รหัสยาว หลักการทำงาน นับความถี่ (Frequency) ของแต่ละตัวอักษร สร้าง Huffman Tree โดยใช้ Priority Queue (Min-Heap) เดินท

  7. Huffman Coding แบบมีประสิทธิภาพสำหรับอินพุตที่เรียงแล้ว

    Efficient Huffman Coding for Sorted Input เป็นการปรับปรุงอัลกอริทึม Huffman Coding เมื่อ ความถี่ (Frequency) เรียงลำดับจากน้อยไปมากแล้ว ลดความซับซ้อนจาก O(n log n) เป็น O(n) แนวคิดหลัก ใช้ 2 คิว (Queues): Q1 สำหรับโหนดใบ (Leaf nodes) เรียงตามความถี่, Q2 สำหรับโหนดภายใน (Internal nodes) ทุกขั้น

  8. Job Sequencing Problem with Deadlines (ปัญหาลำดับงานมีกำหนดส่ง)

    Job Sequencing with Deadlines เป็นปัญหาเพื่อเพิ่มกำไรสูงสุด โดยมีงานหลายงาน แต่ละงานมี กำหนดส่ง (Deadline) และ กำไร (Profit) งานแต่ละงานใช้เวลา 1 หน่วย สามารถทำได้งานเดียวในเวลาเดียวกัน ตัวอย่างปัญหา Jobs: {(a, 2, 100), (b, 1, 19), (c, 2, 27), (d, 1, 25), (e, 3, 15)} Format: (JobID, Deadline, Profi

  9. Bucket Sort (การจัดเรียงแบบถัง)

    Bucket Sort แบ่งข้อมูลเข้า ถัง (Buckets) ตามช่วงค่า จัดเรียงในแต่ละถังแยกกัน แล้วรวมกลับมา ใช้ได้ดีเมื่อข้อมูล กระจายอย่างสม่ำเสมอ (Uniformly distributed) ความซับซ้อน (Complexity) กรณี Time Complexity Best Case O(n + k) Average Case

  10. Comb Sort (การจัดเรียงแบบหวี)

    Comb Sort เป็นการปรับปรุงจาก Bubble Sort โดยเปรียบเทียบและสลับองค์ประกอบที่ห่างกันด้วย Gap (ช่องว่าง) แทนที่จะเป็นติดกัน ทำให้ จระเข้ (ค่าน้อยที่อยู่ท้าย) เคลื่อนที่เร็วขึ้น ความซับซ้อน (Complexity) กรณี Time Complexity Best Case O(n log n)

  11. Counting Sort (การจัดเรียงแบบนับ)

    Counting Sort เป็นอัลกอริทึมจัดเรียงแบบ Non-comparison (ไม่เปรียบเทียบ) และ Stable ใช้ได้ดีเมื่อข้อมูลเป็น จำนวนเต็มบวก (Non-negative integers) ในช่วงที่ไม่กว้างเกินไป ความซับซ้อน (Complexity) ประเภท ความซับซ้อน Time Complexity O(n + k) โดย k = ค่าสู

  12. Cycle Sort (การจัดเรียงแบบรอบ)

    Cycle Sort เป็นอัลกอริทึมจัดเรียงแบบ In-place และ Comparison-based ที่หา จำนวนครั้งการเขียนหน่วยความจำ (Memory Writes) น้อยที่สุด - เหมาะสำหรับหน่วยความจำที่ค่าเขียนแพง (Flash, EEPROM) ความซับซ้อน (Complexity) ประเภท ความซับซ้อน Time Complexity O(n²)

  13. Heap Sort (การจัดเรียงแบบฮีป)

    Heap Sort ใช้โครงสร้างข้อมูล Heap (Binary Heap) ซึ่งเป็น Complete Binary Tree ที่มีคุณสมบัติ: Max-Heap (พาเรนต์ ≥ ลูก) หรือ Min-Heap (พาเรนต์ ≤ ลูก) ความซับซ้อน (Complexity) ประเภท ความซับซ้อน Time Complexity (All cases) O(n log n) Sp

  14. Insertion Sort (การจัดเรียงแบบแทรก)

    Insertion Sort เป็นอัลกอริทึมจัดเรียงที่ง่ายและเข้าใจง่าย ทำงานคล้ายการจัดเรียงไพ่บนมือ: หยิบไพ่แต่ละใบ แล้วแทรกเข้าไปในตำแหน่งที่ถูกต้องในส่วนที่เรียงแล้ว ความซับซ้อน (Complexity) กรณี Time Complexity Best Case (เรียงแล้ว) O(n) Avera

  15. Merge Sort (การจัดเรียงแบบรวม)

    Merge Sort เป็นอัลกอริทึมจัดเรียงแบบ Divide and Conquer (แบ่งและเอาชนะ) แบ่งข้อมูลเป็นส่วนย่อยจนเหลือ 1 องค์ประกอบ แล้วรวมกลับมาด้วยการจัดเรียง ความซับซ้อน (Complexity) ประเภท ความซับซ้อน Time Complexity (Best/Average/Worst) O(n log n) - ทุกกรณีเท่าก

  16. Pigeonhole Sort (การจัดเรียงรูปหลุมนกกระปูด)

    Pigeonhole Sort เป็นอัลกอริทึมจัดเรียงแบบ Non-comparison (ไม่เปรียบเทียบ) ใช้ได้ดีเมื่อ จำนวนข้อมูล (n) และช่วงค่าที่เป็นไปได้ (range) ใกล้เคียงกัน ความซับซ้อน (Complexity) ประเภท ความซับซ้อน Time Complexity O(n + k) โดย k = max - min + 1 (ช่วงค่า)

  17. Git Stash: คู่มือการ Stash โค้ดไว้ใช้ภายหลัง

    Stashing ให้คุณ Save Code ไว้ภายหลังใน Git Repository เวลาทำงานกับ Git Repository คุณอาจทำ Changes ไปที่ File ที่ต้องการ Apply เข้า Git Commit ภายหลัง นี่คือที่มาของคำสั่ง git stash Stashing ให้คุณ Save Code บน Working Branch ไว้วันที่ภายหลัง ในบทช่วยสอนนี้ เราจะอภิปรายพร้อมตัวอย่าง Basics of Stas

  18. Git Push: คู่มือส่งโค้ดไป Remote Repository

    คำสั่ง git push Upload Local Version ของ Repository ไป Remote Repository Pushing เป็น Mechanism ที่คุณ Upload Changes ไป Remote Repository เมื่อ Push Changes แล้ว Collaborators ทั้งหมดบนโปรเจกต์สามารถ Download ได้ Push Code ไป Remote Repository เป็น Final Stage ของ Saving การเปลี่ยนแปลงที่คุณทำไปที

  19. Git Delete Branch: คู่มือลบ Branch Local และ Remote

    การลบ Git Branches เป็น Common Practice หลังจาก Merge Branch เข้า Codebase แล้ว คุณสามารถลบ Git Branch บนเครื่อง Local ด้วย Flag git branch -d คำสั่ง git push origin --delete ลบ Branch จาก Remote Repository Branching ให้คุณสร้าง Independent Versions ของโปรเจกต์ที่ Edit ได้โดยไม่กระทบ Main Version เ

  20. Error: Untracked Working Tree Files Would Be Overwritten by Merge - วิธีแก้

    Error ด้านบนมัก Triggered เมื่อเราไม่ได้ Clone Repository ที่เราพยายาม Pull โปรเจกต์อาจเหมือนกัน แต่เราอาจทำงาน Local หนึ่งขณะพยายาม Pull จาก Repo บน GitHub เพราะอาจมีไฟล์หรือ Features อื่นที่เราอยาก Incorporate บน Local Version มีหลายวิธีแก้ไขนี้ บอก Local Branch Track Remote Branch เราสามารถทำได

Total 1490 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:72/75  20-คอมพิวเตอร์/Page Goto:1 66 67 68 69 70 71 72 73 74 75