Advertisement
svetoslavhl

Untitled

May 21st, 2014
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. //11.Write a program that finds the index of given element
  2. //in a sorted array of integers by using the binary search algorithm (find it in Wikipedia).
  3.  
  4. using System;
  5.  
  6. class FindIndexBinarySearch
  7. {
  8. static void Main()
  9. {
  10. //reading the input data from the console
  11. uint sizeOfArray;
  12. do
  13. {
  14. Console.Write("Please enter the size of array: ");
  15. }
  16. while (!uint.TryParse(Console.ReadLine(), out sizeOfArray));
  17.  
  18. Console.Write("Enter the index of which number you are searching: ");
  19. int searchedNumber = int.Parse(Console.ReadLine());
  20. bool numberExists = false;
  21.  
  22. int[] arrayOfIntegers = new int[sizeOfArray];
  23. for (int i = 0; i < sizeOfArray; i++)
  24. {
  25. do
  26. {
  27. Console.Write("Please enter element {0} of array: ", i);
  28. }
  29. while (!int.TryParse(Console.ReadLine(), out arrayOfIntegers[i]));
  30. }
  31.  
  32. // sort array
  33. Array.Sort(arrayOfIntegers);
  34.  
  35. //print sorted array
  36. Console.Write("The sorted array is:");
  37. for (int i = 0; i < sizeOfArray; i++)
  38. {
  39. Console.Write("{0} ", arrayOfIntegers[i]);
  40. }
  41. Console.WriteLine();
  42.  
  43. //binary search algorithm
  44. int low = 0;
  45. int high = (int)sizeOfArray - 1;
  46. int midpoint = 0;
  47.  
  48. while (low <= high)
  49. {
  50. midpoint = low + (high - low) / 2;
  51.  
  52. if (searchedNumber == arrayOfIntegers[midpoint])
  53. {
  54. numberExists = true;
  55. Console.WriteLine("The index of the number {0} in the sorted array,\nstarting from zero is {1}.", searchedNumber, midpoint);
  56. break;
  57. }
  58. else if (searchedNumber < arrayOfIntegers[midpoint])
  59. high = midpoint - 1;
  60. else
  61. low = midpoint + 1;
  62. }
  63.  
  64. if (numberExists == false)
  65. {
  66. Console.WriteLine("The number you are searching for does not exist in the array.");
  67. }
  68. }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement