Computer >> Máy Tính >  >> Lập trình >> lập trình C

Làm thế nào để tìm phần tử tối thiểu trong một mảng bằng cách sử dụng tìm kiếm tuyến tính trong ngôn ngữ C?

Ngôn ngữ lập trình C cung cấp hai loại kỹ thuật tìm kiếm. Chúng như sau -

  • Tìm kiếm tuyến tính
  • Tìm kiếm nhị phân

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

  • Tìm kiếm phần tử chính được thực hiện theo kiểu tuyến tính.
  • Đây là kỹ thuật tìm kiếm đơn giản nhất.
  • Nó không mong đợi danh sách được sắp xếp.
  • Giới hạn - Tiêu tốn nhiều thời gian hơn và giảm sức mạnh của hệ thống.
Input (i/p): Unsorted list of elements, key.
Output (o/p):
  • Thành công - Nếu tìm thấy chìa khóa.
  • Không thành công - Nếu không.

Làm thế nào để tìm phần tử tối thiểu trong một mảng bằng cách sử dụng tìm kiếm tuyến tính trong ngôn ngữ C?

Ví dụ1

Sau đây là chương trình C để tìm phần tử tối thiểu trong một mảng bằng cách sử dụng tìm kiếm tuyến tính -

#include<stdio.h>
int main (){
   int a[50], n, i, key, flag = 0;
   printf("enter the no: of elements");
   scanf ("%d",&n);
   printf("enter the elements:");
   for (i=0; i<n; i++)
      scanf( "%d", &a[i]);
   printf("enter a key element:");
   scanf ("%d", &key);
   for (i=0; i<n; i++){
      if (a[i] == key){
         flag = 1;
         break;
      }
   }
   if (flag == 1)
      printf("search is successful:");
   else
      printf("search is unsuccessfull:");
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

enter the no: of elements 5
enter the elements:
12
34
56
78
89
enter a key element:56
search is successful:

Ví dụ2

Dưới đây là một chương trình khác để tìm phần tử nhỏ nhất trong mảng bằng cách sử dụng tìm kiếm lót -

#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("Enter no: of elements in an array: ");
   scanf("%d",&n);
   int numbers[n];
   int i;
   int min ;
   printf("Enter %d numbers : ", n);
   printf("\n");
   for (i = 0; i < n; i++){
      scanf("%d", &numbers[i]);
   }
   min = min_ele(numbers,n);
   printf("\In an array the minimum number is: %d\n", min);
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter no: of elements in an array: 5
Enter 5 numbers:
23
56
78
9
20
In an array the minimum number is: 9