Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. วิธีคำนวณ Combination และ Permutation ใน C++

    ภาพรวม Combination (การจัดหมู่) และ Permutation (การเรียงสับเปลี่ยน) เป็นส่วนของ Combinatorics ความแตกต่างคือ Permutation สนใจลำดับ ส่วน Combination ไม่สนใจลำดับ สูตรคณิตศาสตร์ Permutation (nPr): จำนวนวิธีจัดเรียง r ชิ้นจาก n ชิ้น (สนใจลำดับ) nPr = n! / (n - r)! Combination (nCr): จำนวนวิธีเลือก

  2. Static Variables ใน Member Functions ของ C++ ทำงานอย่างไร?

    ภาพรวม Static Variables ภายใน Member Function (หรือฟังก์ชันทั่วไป) มีลักษณะพิเศษ: จัดสรรหน่วยความจำ เพียงครั้งเดียว ตลอดการรันโปรแกรม มี เพียง 1 ตัว แชร์ร่วมกันทุกครั้งที่เรียกฟังก์ชัน (รวมทุกออบเจ็กต์) Initialize แค่ครั้งแรกที่ผ่านบรรทัดการประกาศ ค่า Default คือ 0 (สำหรับ primitive types)

  3. Static Object ใน C++ ถูกทำลายเมื่อไหร่?

    ภาพรวม Static Object ใน C++ คือออบเจ็กต์ที่ประกาศด้วยคีย์เวิร์ด static มีคุณสมบัติ: ถูก Initialize เพียงครั้งเดียว (ครั้งแรกที่ผ่านบรรทัดโค้ด) เก็บอยู่ใน Static Storage Area (ไม่ใช่ Stack/Heap) ถูกทำลาย (Destroyed) เฉพาะเมื่อโปรแกรมจบการทำงาน (Program Termination) มีอายุชีวิตตลอดการรันโปรแก

  4. วิธีพิมพ์ขนาดอาร์เรย์พารามิเตอร์ในฟังก์ชัน C++

    ภาพรวม ใน C++ เมื่อส่งอาร์เรย์เข้าไปในฟังก์ชัน อาร์เรย์จะ Decay เป็น Pointer ทำให้ sizeof ภายในฟังก์ชันคืนค่าขนาดของ Pointer (8 bytes บน 64-bit) ไม่ใช่ขนาดอาร์เรย์ทั้งหมด ต้องส่งขนาดมาพร้อมกัน หรือใช้ Template/Reference ตัวอย่างโค้ดแสดงปัญหา #include <iostream> using namespace std; void func

  5. วิธีสร้าง Static Class ใน C++

    ภาพรวม ใน C++ ไม่มีคีย์เวิร์ด static class โดยตรงเหมือน C# หรือ Java คลาสที่ใกล้เคียงที่สุดคือ คลาสที่มีเฉพาะ Static Data Members และ Static Member Functions เท่านั้น คุณสมบัติของ Static Members Static Data Members: แชร์ร่วมกันทุกออบเจ็กต์ของคลาส มีเพียง 1 ตัวในหน่วยความจำ ไม่ว่าจะสร้างออบเจ็กต์

  6. โปรแกรม C++ แก้ปัญหา Knapsack 0-1 ด้วย Dynamic Programming

    ภาพรวม โปรแกรม C++ นี้แก้ปัญหา 0-1 Knapsack Problem โดยใช้ Dynamic Programming กำหนดให้มีชิ้นส่วน n ชิ้น แต่ละชิ้นมีน้ำหนัก (weight) และค่า (value) ต้องเลือกชิ้นส่วนใดบ้างเพื่อให้ค่ารวมมากที่สุด โดยน้ำหนักรวมไม่เกินความจุกระเป๋า (W) แต่ละชิ้นเลือกได้สูงสุด 1 ชิ้น (0-1) อัลกอริธึม Dynamic Programmin

  7. โปรแกรม C++ Shaker Sort (Cocktail Sort)

    ภาพรวม Shaker Sort (หรือ Cocktail Sort) เป็นการปรับปรุง Bubble Sort โดยการเรียงลำดับสลับไปมาระหว่างซ้าย-ขวา และขวา-ซ้าย ช่วยให้ค่าที่เล็ก ลอย ขึ้นไปด้านหน้า และค่าที่ใหญ่ จม ลงไปด้านหลังได้เร็วขึ้น ความซับซ้อนด้านเวลา O(n²) เหมือน Bubble Sort แต่มีประสิทธิภาพดีกว่าจริง อัลกอริธึม กำหนดตัวแปร lef

  8. โปรแกรม C++ Stooge Sort (การเรียงลำดับแบบ Stooge)

    ภาพรวม Stooge Sort เป็นอัลกอริทึมเรียงลำดับแบบ Recursive ที่มีลักษณะเฉพาะตัว: แบ่งอาร์เรย์เป็น 2 ส่วนทับซ้อนกัน (2/3 แต่ละส่วน) และเรียงซ้ำ 3 รอบ (ซ้าย, ขวา, ซ้ายอีกครั้ง) ความซับซ้อนด้านเวลา O(n^log₃/₁.₅) ≈ O(n^2.7095) ช้ากว่า Bubble Sort ใช้เพื่อการศึกษา/ทดสอบเท่านั้น อัลกอริธึม ถ้าขนาดส่วน ≤

  9. โปรแกรม C++ Quick Sort แบบ Randomized Pivot

    ภาพรวม Quick Sort แบบ Randomized Pivot เป็นการปรับปรุง Quick Sort ธรรมดาโดยเลือก Pivot แบบสุ่ม ลดโอกาสเกิด Worst Case O(n²) เมื่อข้อมูลเรียงลำดับหรือเกือบเรียงลำดับ ความซับซ้อนเฉลี่ย O(n log n) อัลกอริธึม Partition (Lomuto Partition Scheme) เลือก Pivot (ในที่นี้คือองค์ประกอบสุดท้ายหลังสุ่ม) กำ

  10. โปรแกรม C++ เปรียบเทียบ Binary Search และ Linear Search

    ภาพรวม โปรแกรม C++ นี้เปรียบเทียบประสิทธิภาพระหว่าง Binary Search (O(log n)) และ Linear Search (O(n)) โดยนับจำนวนรอบการวนลูป (Iterations) ในการค้นหาแต่ละครั้ง แสดงให้เห็นว่า Binary Search ดีกว่าในกรณีทั่วไป แต่ Linear Search อาจดีกว่าเมื่อข้อมูลอยู่หน้าสุด อัลกอริธึม Binary Search ฟังก์ชัน Binar

  11. โปรแกรม C++ ค้นหาด้วย Self-Organizing List (Move-to-Front)

    ภาพรวม Self-Organizing List เป็นโครงสร้างข้อมูลที่จัดเรียงตัวเองตามความถี่ในการเข้าถึง วิธี Move-to-Front จะย้ายโหนดที่เพิ่งค้นหาพบ ไปอยู่ที่หัวลิสต์ ทำให้การค้นหาครั้งต่อไปเร็วขึ้น ความซับซ้อนด้านเวลา O(n) แต่ประสิทธิภาพดีขึ้นสำหรับข้อมูลที่เข้าถึงบ่อย อัลกอริธึม (Move-to-Front) สร้าง Linked Li

  12. โปรแกรม C++ Binary Search สำหรับค้นหาลำดับข้อมูล (Search Sequence)

    ภาพรวม โปรแกรม C++ นี้สาธิตการใช้ Binary Search เพื่อหาตำแหน่งเริ่มต้นของลำดับข้อมูล (Search Sequence) ในอาร์เรย์ที่เรียงลำดับ แล้วตรวจสอบว่าลำดับต่อเนื่องตรงกันหรือไม่ ความซับซ้อนด้านเวลา O(log n + m) โดย m คือความยาวลำดับที่ค้นหา ขั้นตอนและ Pseudocode ฟังก์ชัน BinarySearch() ค้นหาตัวแรกของลำดั

  13. โปรแกรม C++ ค้นหาข้อมูลใน Binary Search Tree

    ภาพรวม โปรแกรม C++ นี้สาธิตการค้นหาข้อมูลใน Binary Search Tree (BST) โดยเริ่มจากราก (Root) เปรียบเทียบค่าที่ต้องการค้นหากับโหนดปัจจุบัน แล้วเดินทางไปซ้ายหรือขวาตามลำดับ ความซับซ้อนด้านเวลาเฉลี่ย O(log n) แต่อาจเป็น O(n) ในกรณีแย่ที่สุด (ต้นไม้เอียง) อัลกอริธึม สร้าง BST จากข้อมูลที่ไม่ได้เรียงลำ

  14. โปรแกรม C++ หา K-th Largest Element ด้วย Max Heap

    ภาพรวม โปรแกรม C++ นี้สาธิตการหาองค์ประกอบที่ใหญ่เป็นอันดับ K (K-th Largest Element) โดยใช้ Max Heap วิธีนี้มีประสิทธิภาพมากกว่าการเรียงลำดับทั้งอาร์เรย์ ความซับซ้อนด้านเวลา O(n + k log n) อัลกอริธึม สร้าง Max Heap จากอาร์เรย์ทั้งหมด (Build Max Heap) - ใช้เวลา O(n) ทำซ้ำ K รอบ: สลับ

  15. โปรแกรม C++ ค้นหาข้อมูลด้วย Fibonacci Search (Divide and Conquer)

    ภาพรวม Fibonacci Search เป็นอัลกอริทึมค้นหาแบบ Divide and Conquer ที่ใช้เลขฟีบอนัชชี (Fibonacci Numbers) ในการคำนวณตำแหน่งกลาง (Mid) แทนการหาร 2 เหมาะสำหรับระบบที่การหารมีค่าใช้จ่ายสูง ความซับซ้อนด้านเวลา O(log n) อัลกอริธึม จัดเรียงข้อมูลในอาร์เรย์ให้เรียงลำดับ สร้างลำดับฟีบอนัชชีจนกว่าจะครอบ

  16. โปรแกรม C++ ทำ Uniform Binary Search ด้วย Lookup Table

    ภาพรวม Uniform Binary Search เป็นการปรับปรุง Binary Search แบบคลาสสิกโดยใช้ Lookup Table (ตารางค้นหา) เก็บค่าขั้นตอนการกระโดด (Jump Steps) ไว้ล่วงหน้า ทำให้เร็วกว่า Binary Search ปกติที่ต้องคำนวณ mid ทุกครั้ง ความซับซ้อนด้านเวลา O(log n) อัลกอริธึม จัดเรียงข้อมูลในอาร์เรย์ให้เรียงลำดับก่อน สร้

  17. โปรแกรม C++ หาค่าต่ำสุดในอาร์เรย์ด้วย Linear Search

    ภาพรวม โปรแกรม C++ นี้สาธิตการหาค่าต่ำสุด (Minimum Element) ในอาร์เรย์โดยใช้วิธี Linear Search ซึ่งตรวจสอบทีละองค์ประกอบตามลำดับ ความซับซ้อนด้านเวลา O(n) เหมาะสำหรับข้อมูลขนาดเล็กหรือไม่ได้เรียงลำดับ อัลกอริธึม กำหนดค่าเริ่มต้นของตัวแปร minimum เป็นค่าที่ดัชนี 0 วนลูปผ่านทุกองค์ประกอบในอาร์เรย

  18. โปรแกรม C++ หาค่าสูงสุดในอาร์เรย์ด้วย Binary Search Tree

    ภาพรวม โปรแกรม C++ นี้สาธิตการหาค่าสูงสุด (Maximum Element) ในชุดข้อมูลโดยใช้ Binary Search Tree (BST) หลังจากสร้าง BST แล้ว ให้เลื่อน pointer ไปยังโหนดลูกขวาสุด (Rightmost Node) ซึ่งจะเป็นค่าสูงสุด ความซับซ้อนด้านเวลาเฉลี่ย O(log n) อัลกอริธึม สร้าง Binary Search Tree จากข้อมูลอาร์เรย์ที่กำหนด

  19. โปรแกรม C++ หาค่าต่ำสุดในอาร์เรย์ด้วย Binary Search Tree

    ภาพรวม โปรแกรม C++ นี้สาธิตการหาค่าต่ำสุด (Minimum Element) ในชุดข้อมูลโดยการสร้าง Binary Search Tree (BST) จากข้อมูลที่ไม่ได้เรียงลำดับ จากนั้นนำ pointer ไปยังโหนดลูกซ้ายสุด (Leftmost Node) ซึ่งจะเป็นค่าต่ำสุดของ BST ความซับซ้อนด้านเวลาเฉลี่ย O(log n) อัลกอริธึม สร้าง Binary Search Tree จากข้อม

  20. โปรแกรม C++ หา Peak Element ในอาร์เรย์ด้วยวิธี Binary Search

    ภาพรวม โปรแกรม C++ นี้สาธิตการหา Peak Element (องค์ประกอบที่มีค่ามากกว่าหรือเท่ากับเพื่อนบนทั้งสองข้าง) ในอาร์เรย์โดยใช้วิธี Binary Search ซึ่งมีความซับซ้อนด้านเวลา O(log n) อัลกอริธึมจะคืนค่า Peak แรกที่พบ อัลกอริธึม ฟังก์ชัน PeakElement() รับพารามิเตอร์: อาร์เรย์ arr, ดัชนีเริ่มต้น start, และด

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:27/301  20-คอมพิวเตอร์/Page Goto:1 21 22 23 24 25 26 27 28 29 30 31 32 33