Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Tìm phần tử nhỏ nhất mảng bằng tìm kiếm tuyến tính trong C


C cung cấp hai kỹ thuật tìm kiếm: tuyến tính và nhị phân.

Tìm kiếm tuyến tính

  • Tìm khóa theo cách tuyến tính.
  • Kỹ thuật tìm kiếm đơn giản nhất.
  • Không yêu cầu danh sách đã sắp xếp.
  • Hạn chế - Tốn nhiều thời gian, giảm hiệu suất hệ thống.
Đầu vào: Danh sách không sắp xếp, khóa. 
Đầu ra:
  • Thành công - Nếu tìm thấy khóa.
  • Thất bại - Ngược lại.

Tìm phần tử nhỏ nhất mảng bằng tìm kiếm tuyến tính trong C

Ví dụ 1

Chương trình C tìm phần tử nhỏ nhất bằng tìm kiếm tuyến tính:

#include <stdio.h> 
int main(){ 
    int a[50], n, i, key, flag = 0; 
    printf("Nhap so phan tu: "); 
    scanf("%d", &n); 
    printf("Nhap cac phan tu: "); 
    for(i = 0; i < n; i++) 
        scanf("%d", &a[i]); 
    printf("Nhap phan tu can tim: "); 
    scanf("%d", &key); 
    for(i = 0; i < n; i++){ 
        if(a[i] == key){ 
            flag = 1; 
            break; 
        } 
    } 
    if(flag == 1) 
        printf("Tim kiem thanh cong: "); 
    else 
        printf("Tim kiem that bai: "); 
    return 0; 
}

Đầu ra

Kết quả chạy chương trình:

Nhap so phan tu: 5 
Phan tu: 12 34 56 78 89 
Tim: 56 
Tim kiem thanh cong:

Ví dụ 2

Chương trình khác tìm phần tử nhỏ nhất bằng tìm kiếm tuyến tính:

#include <stdio.h> 
int min_ele(int numbers[], int n){ 
    int min = numbers[0]; 
    int i; 
    for(i = 1; i <= n; i++){ 
        if(min > numbers[i]) 
            min = numbers[i]; 
    } 
    return min; 
} 
int main(){ 
    int n; 
    printf("Nhap so phan tu mang: "); 
    scanf("%d", &n); 
    int numbers[n]; 
    int i, min; 
    printf("Nhap %d so: ", n); 
    printf("\n"); 
    for(i = 0; i < n; i++){ 
        scanf("%d", &numbers[i]); 
    } 
    min = min_ele(numbers, n); 
    printf("\nTrong mang so nho nhat la: %d\n", min); 
    return 0; 
}

Đầu ra

Kết quả chạy chương trình:

Nhap so phan tu mang: 5 
Nhap 5 so: 23 56 78 9 20 
Trong mang so nho nhat la: 9