Skip to main content

Binary Search

/**
    Program Name: Binary Search

    Description: This Program Searches for an Item in an integer Array

    Author:  Tauqirul Haque
       
*/


   
#define SIZE 10

void displayElement(int data[SIZE]);
void binarySearch(int data[], int);


void displayElement(int data[SIZE])
{
    int i;
   
    for(i=0; i
    {
        printf("\n Data[%d] = %d ", i+1, data[i]);
    }
   
    printf("\n");
}



void main()
{
    int data[SIZE] = {12,24,56,58,78,90,91,99,100,107};
   
    int item;
    int choice;
   
    while(choice != 3)
    {
        printf("\n\t\t 1. Search an Item ");
        printf("\n\t\t 2. Display The Elements ");
        printf("\n\t\t 3. Quit the Program");
        printf("\n\n\t\t Enter Your Choice #  ");
       
        scanf("%d",&choice);
       
        switch(choice)
        {
            case 1:
                        printf("\nEnter the Element you want to Search #  ");
                        scanf("%d",&item);
   
                           binarySearch(data,item);
                           break;
             case 2:
                         displayElement(data);
                         break;
            case 3:

                        printf("Program Terminated ... \n");
                        getch();
                        exit(0);
        }
    }
}

void binarySearch(int data[SIZE], int item)
{
    int beg=0;
    int end=SIZE-1;
    int mid = (beg+end)/2;
   
    while(beg <= end && data[mid] != item)
    {
        if(item < data[mid])
        {
            end = mid -1 ;
        }
        else
        {
            beg = mid + 1;
        }
       
        mid = (beg+end)/2;
    }
   
    if(item == data[mid])
    {
        printf("\nSearch SUCCESSFULL #  Item Location = %d \n", mid+1);
    }
    else
    {
        printf("\nSearch UNSUCCESSFULL # Item not in the List ...\n");
    }
}
       

Comments

Popular posts from this blog

Splitting Large File into Smallers ones

Splitting of Large File in Linux/Unix is done using split command. Check the example given below Using split command on a 600MB myImage.iso file. - prompt# split -b 200m image.iso image this command will generate three files, namely imageaa, imageab, imageac, of 200MB each. afterwards we can use the cat command to combine the three to get back the original file, the command goes as follows ... - prompt# cat imagea* > image. iso . Things Done the easy ways ...

Extracting RPM

Sometimes we are required to extract files inside an RPM file without installing it. For example is when we take binaries from one distribution and use it on another distribution, where RPM is not the default package manager. The rpm2cpio command comes in handy. Check out the given example below ... $ rpm2cpio coreutils-6.9-2.fc7.i586.rpm | cpio -idv ./bin/basename ./bin/cat ./bin/chgrp .... ... [.. etc ] Now you can use the extracted files

Getting Linux CD Free to Your Door-Steps

Getting a UBUNTU Linux CD at your doorstep is very easy, and this all comes to you at NO-COST.. no need to pay a single cent. All you need to do is to follows these given steps .... Step 1: Log on to https:/ /shipit. ubuntu. com Step 2: Click on the Required CD you want .. (i.e. Desktop or Server Version) Step 3: Log into your account or create a new one ( if you don't have one) Step 4: Fill in your details with proper Address and done .... The CD will arrive you with 1-1.5 month ... ........... Happy Linux .............