Advertisement
eddiehy

search_class

Nov 28th, 2015
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int data[100005];
  6. int counter=0,key;
  7. int action,j;
  8. while(1)
  9. {
  10. scanf("%d",&action);
  11. if (action==5)
  12. {return 0;}
  13. if (action==1)
  14. {
  15. scanf("%d",&key);
  16. if (counter==0)
  17. {data[0]=key;}
  18. else
  19. {
  20. for (j=counter-1;j>=0 && data[j]>key;j--)
  21. {
  22. data[j+1]=data[j];
  23. }
  24. data[j+1]=key;
  25. }
  26. counter++;
  27. }
  28. if (action==4)
  29. {
  30. for (j=0;j<counter;j++)
  31. {
  32. printf("%d ",data[j]);
  33. }
  34. printf("\n");
  35. }
  36. if (action==2)
  37. {
  38. fflush(stdin);
  39. scanf("%d",&key);
  40. for (j=0;j<counter;j++)
  41. {
  42. printf ("%d: %d\n",j,data[j]);
  43. if(data[j]==key)
  44. {
  45. printf("found %d\n", key);
  46. //findtime=0;
  47. break;
  48. }
  49. /*if (data[j]!=key && j==counter-1)
  50. {
  51. printf ("%d not found!!",key);
  52. findtime=0;
  53. }*/
  54. }
  55. }
  56. if (action==3)
  57. {
  58. fflush(stdin);
  59. scanf("%d",&key);
  60. int low=0,high=counter,mid;
  61. while(low<=high)
  62. {
  63. mid=(low+high)/2;
  64. printf ("%d: %d\n",mid,data[mid]);
  65. if(data[mid]>key)
  66. {high=mid-1;}
  67. else if(data[mid]<key)
  68. {low=mid+1;}
  69. /*else if (low==high && data[mid]!=key)
  70. {
  71. printf ("%d not found!",key);
  72. findtime=0;
  73. }*/
  74. else
  75. {
  76. printf("found %d\n", key);
  77. //findtime=0;
  78. break;
  79. }
  80. }
  81. }
  82. }
  83. return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement