Advertisement
NAbdulla

word search

Jun 1st, 2015
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.21 KB | None | 0 0
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. #include<string.h>
  4.  
  5. void bblsrt(char str[][100], int n)
  6. {
  7.     int j, k;
  8.     char s[100];
  9.     for(j = 0; j < n-1; j++){
  10.         for(k = 0; k < n-j-1; k++){
  11.             if(strcmp(str[k], str[k+1]) > 0){
  12.                 strcpy(s, str[k]);
  13.                 strcpy(str[k], str[k+1]);
  14.                 strcpy(str[k+1], s);
  15.             }
  16.         }
  17.     }
  18. }
  19.  
  20. int bisearch(char str[][100], char s[], int l)
  21. {
  22.     int hi = l-1, lo = 0, mid;
  23.     while(lo <= hi){
  24.         mid = (hi+lo)/2;
  25.         if(strcmp(str[mid], s) > 0)hi = mid-1;
  26.         else if(strcmp(str[mid], s) < 0)lo = mid+1;
  27.         else return 1;
  28.     }
  29.     return 0;
  30. }
  31.  
  32. int main()
  33. {
  34.     int i, j, k;
  35.     char str_lst[10000][100], str[100];
  36.     printf("To terminate input, press enter button two times.\n");
  37.     i = 0;
  38.     gets(str);
  39.     while(strcmp(str, "\0")){
  40.         strcpy(str_lst[i], str);
  41.         i++;
  42.         gets(str);
  43.     }
  44.  
  45.     if(i == 0)printf("No input\n");
  46.     else{
  47.         bblsrt(str_lst, i);
  48.             /*for(j = 0; j < i; j++){
  49.                  printf("%s\n", str_lst[j]);
  50.             }*/
  51.  
  52.         printf("Now, enter the word to search: ");
  53.         gets(str);
  54.  
  55.         if(bisearch(str_lst, str, i))printf("Yes");
  56.         else printf("No");
  57.     }
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement