Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी भाषा में द्विआधारी खोज का उपयोग करके किसी सरणी में न्यूनतम तत्व कैसे खोजें?

C प्रोग्रामिंग भाषा दो प्रकार की खोज तकनीक प्रदान करती है। वे इस प्रकार हैं -

  • रैखिक खोज
  • द्विआधारी खोज

द्विआधारी खोज

  • यह विधि केवल क्रमबद्ध सूची पर लागू की जा सकती है।
  • दी गई सूची को दो बराबर भागों में बांटा गया है।
  • दी गई कुंजी की तुलना सूची के मध्य तत्व से की जाती है।

यहां तीन स्थितियां हो सकती हैं, जो इस प्रकार हैं-

  • यदि मध्य तत्व कुंजी से मेल खाता है, तो खोज यहाँ सफलतापूर्वक समाप्त हो जाएगी

  • यदि मध्य तत्व कुंजी से बड़ा है, तो खोज बाएं विभाजन में आगे बढ़ेगी।

  • यदि मध्य तत्व कुंजी से कम है, तो खोज सही विभाजन में आगे बढ़ेगी।

इनपुट (i/p) - तत्वों की बिना क्रमित सूची, कुंजी।

आउटपुट (ओ/पी) -

  • सफलता - यदि कुंजी मिल जाती है
  • असफल - अन्यथा

सी भाषा में द्विआधारी खोज का उपयोग करके किसी सरणी में न्यूनतम तत्व कैसे खोजें?

key = 20
mid = (low +high) /2

सी भाषा में द्विआधारी खोज का उपयोग करके किसी सरणी में न्यूनतम तत्व कैसे खोजें?

कार्यक्रम1

बाइनरी सर्च का उपयोग करके किसी सरणी में न्यूनतम तत्व खोजने के लिए सी प्रोग्राम निम्नलिखित है -

#include<stdio.h>
int main(){
   int a[50], n, i, key, flag = 0, low, mid, high;
   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);
   low = 0;
   high = n-1;
   while (low<= high ){
      mid = (low + high) /2;
      if (a[mid] == key){
         flag = 1;
         break;
      }
      else{
         if (a[mid] > key)
            high = mid-1;
         else
            low = mid+1;
      }
   }
   if (flag == 1)
      printf ("search is successful");
   else
      printf("search is unsuccessful");
   return 0;
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Run 1:
enter the no: of elements:5
enter the elements:
12
34
11
56
67
enter a key element:45
search is unsuccessful
Run 2:
enter the no: of elements:3
enter the elements:
12
34
56
enter a key element:34
search is successful

कार्यक्रम2

बाइनरी सर्च का उपयोग करके एक सरणी में न्यूनतम तत्व खोजने के लिए नीचे एक और सी प्रोग्राम दिया गया है -

#include<stdio.h>
void Bmin(int *a, int i, int n){
   int j, temp;
   temp = a[i];
   j = 2 * i;
   while (j <= n){
      if (j < n && a[j+1] > a[j])
         j = j + 1;
      if (temp < a[j])
         break;
      else if (temp >= a[j]){
         a[j / 2] = a[j];
         j = 2 * j;
      }
   }
   a[j/2] = temp;
   return;
}
int binarysearchmin(int *a,int n){
   int i;
   for(i = n/2; i >= 1; i--){
      Bmin(a,i,n);
   }
   return a[1];
}
int main(){
   int n, i, x, min;
   int a[20];
   printf("Enter no of elements in an array\n");
   scanf("%d", &n);
   printf("\nEnter %d elements: ", n);
   for (i = 1; i <= n; i++){
      scanf("%d", &a[i]);
   }
   min = binarysearchmin(a, n);
   printf("\minimum element in an array is : %d", min);
   return 0;
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Enter no of elements in an array
5
Enter 5 elements:
12
23
34
45
56
minimum element in an array is: 12

  1. एंड्रॉइड में किसी सरणी में मध्य तत्व कैसे खोजें?

    यह उदाहरण दर्शाता है कि एंड्रॉइड में किसी सरणी में मध्य तत्व कैसे खोजें। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

  1. सी भाषा में पॉइंटर्स का उपयोग करके सरणी तत्वों के योग की गणना कैसे करें?

    पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है। निम्नलिखित कथन पर विचार करें - int qty = 179; सूचक घोषित करना पॉइंटर घोषित करने का सिंटैक्स इस प्रकार है - int *p; यहाँ, p एक पॉइंटर वेरिएबल है जो अन्य वेरिएबल का पता रखता है। सूचक का प्रारंभ एड्रेस ऑपरेटर (&) का उपयोग पॉइंटर वे

  1. सी भाषा में रैखिक खोज का उपयोग करके किसी सरणी में न्यूनतम तत्व कैसे खोजें?

    C प्रोग्रामिंग भाषा दो प्रकार की खोज तकनीक प्रदान करती है। वे इस प्रकार हैं - रैखिक खोज द्विआधारी खोज रैखिक खोज मुख्य तत्व की खोज रैखिक तरीके से की जाती है। यह सबसे सरल खोज तकनीक है। यह सूची को क्रमबद्ध करने की अपेक्षा नहीं करता है। सीमा - इसमें अधिक समय लगता है और सिस्टम की शक्ति कम हो जाती है।