Advertisement
d1i2p3a4k5

25.Indexed sequential search(DS)

Nov 2nd, 2014
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 KB | None | 0 0
  1. #include<conio.h>
  2. #include<stdio.h>
  3. #define size 5
  4. int createindex(int x[],int n,int index[])
  5. {
  6.     int i,j=0;
  7.     for(i=0;i<n;i=i+size)
  8.         index[j++]=x[i];
  9.     index[j++]=x[n-1];
  10.     return j;
  11. }
  12. int indexsearch(int x[],int n,int index[],int m,int ele)
  13. {
  14.     int i,j,k;
  15.     if(ele<x[0]||ele>x[n-1])
  16.         return 0;
  17.     for(i=0;i<m;i++)
  18.     {
  19.         if(ele<=index[i])
  20.             break;
  21.     }
  22.     j = i*size;
  23.     if(j>n-1)
  24.         j=n-1;
  25.     for(k=j;k>=i-1+size;k--)
  26.     {
  27.         if(ele>=x[k])
  28.             break;
  29.     }
  30.     if(ele==x[k])
  31.         return 1;
  32.     else return 0;
  33. }
  34. int main()
  35. {
  36.     int i,j,k,n,x[100],ele,m,index[100];
  37.     printf("enter n");
  38.     scanf_s("%d",&n);
  39.     printf("enter elements");
  40.     for(i=0;i<n;i++)
  41.     {
  42.         scanf_s("%d",&x[i]);
  43.     }
  44.    
  45.     for(i=0;i<n-1;i++)
  46.     {
  47.         for(j=0;j<n-1;j++)
  48.         {
  49.             if(x[j]>x[j+1])
  50.             {
  51.                 k=x[j];
  52.                 x[j]=x[j+1];
  53.                 x[j+1]=k;
  54.             }
  55.         }
  56.     }
  57.     m = createindex(x,n,index);
  58.     while(1)
  59.     {
  60.         printf("1.enter ele to search 2.exit");
  61.         scanf_s("%d",&k);
  62.         if(k==2)
  63.         {
  64.             break;
  65.         }
  66.         printf("enter ele to search");
  67.         scanf_s("%d",&ele);
  68.         if(indexsearch(x,n,index,m,ele)==1)
  69.             printf("\n element found");
  70.         else printf("\nelement not found");
  71.     }
  72.     _getch();
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement