Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int step = 0;
  5.  
  6. int binary_search(int target, int left, int right, int arr[]) {
  7. step++;
  8. int mid = (left + right) / 2;
  9.  
  10. if (target == arr[mid]) return mid;
  11. if (target < arr[mid])
  12. right = mid;
  13. if (target > arr[mid])
  14. left = mid;
  15.  
  16. return binary_search(target, left, right, arr);
  17. }
  18.  
  19. int main() {
  20. int arr[200];
  21. int bukkit[100] = {0};
  22. int i, j, t;
  23.  
  24. // Random generate data
  25. for (i = 0; i < 200; i++)
  26. arr[i] = rand() % 100;
  27.  
  28. // Display data
  29. printf("Before\n");
  30. for (i = 0; i < 20; i++) {
  31. printf("%d ", arr[i]);
  32. bukkit[arr[i]]++;
  33. }
  34.  
  35. // Sort data by counting sort
  36. printf("\nAfter\n");
  37. for (t = i = 0; i < 100; i++)
  38. for (j = 0; j < bukkit[i]; j++) {
  39. printf("%d ", i);
  40. arr[t++] = i;
  41. }
  42. printf("\n");
  43.  
  44. int idx = binary_search(86, 0, 20, arr);
  45. while (arr[idx-1] == arr[idx]) idx--;
  46. printf("arr[%d] = %d\n", idx, 2);
  47. printf("Cost: %d\n", step);
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement