Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

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

ภาพรวม

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

อัลกอริธึม

  1. กำหนดค่าเริ่มต้นของตัวแปร minimum เป็นค่าที่ดัชนี 0
  2. วนลูปผ่านทุกองค์ประกอบในอาร์เรย์
  3. เปรียบเทียบค่าปัจจุบันกับ minimum ถ้าน้อยกว่า ให้อัปเดต minimum
  4. หลังจบลูป minimum จะเก็บค่าต่ำสุดของอาร์เรย์

โค้ดตัวอย่าง

#include <iostream>
using namespace std;

int main() {
    int arr[] = {1, 6, 7, 10, 12, 14, 12, 16, 20, 26};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    int minimum = arr[0];
    cout << "The data element of array:";
    for (int i = 0; i < n; i++) {
        cout << " " << arr[i];
        if (minimum > arr[i]) {
            minimum = arr[i];
        }
    }
    cout << "\n\nMinimum of the data elements of array using linear search is: " << minimum;
    return 0;
}

ผลลัพธ์ตัวอย่าง

The data element of array: 1 6 7 10 12 14 12 16 20 26
Minimum of the data elements of array using linear search is: 1

การวิเคราะห์

  • ข้อดี: เข้าใจง่าย ใช้ได้กับข้อมูลทุกประเภท ไม่ต้องเรียงลำดับก่อน
  • ข้อเสีย: ช้ากว่า Binary Search สำหรับข้อมูลขนาดใหญ่ (O(n) vs O(log n))
  • การปรับปรุง: หากอาร์เรย์เรียงลำดับแล้ว ให้เข้าถึง arr[0] ได้เลย (O(1))