Advertisement
Guest User

zad4

a guest
Nov 20th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.33 KB | None | 0 0
  1.  class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             int[] tab1 = { 1, 3, 5, 7, 9 };
  6.             int[] odp1 = Algorytm(tab1, 4, 0, 4);
  7.  
  8.             for (int i = 0; i <= 10; i++)
  9.             {
  10.                 odp1 = Algorytm(tab1, i, 0, 4);
  11.                 Console.WriteLine(i + ": (" + odp1[0] + " " + odp1[1]+"]");
  12.             }
  13.  
  14.             Console.ReadKey();
  15.         }
  16.         static int[] Algorytm(int[] tab, int x,int l, int p)
  17.         {
  18.             int[] przedzial = new int[2];
  19.             if(x <= tab[0])
  20.             {
  21.                 przedzial[0] = x;// tab[0];
  22.                 przedzial[1] = tab[0];
  23.                 return przedzial;
  24.             }
  25.             else if(x > tab[tab.Length-1])
  26.             {
  27.                 przedzial[0] = tab[tab.Length - 1];
  28.                 przedzial[1] = x;// tab[tab.Length - 1];
  29.                 return przedzial;
  30.             }
  31.             if(p == l)
  32.             {
  33.                 if(x <= tab[p])
  34.                 {
  35.                     przedzial[0] = tab[p-1];
  36.                     przedzial[1] = tab[p];
  37.                     return przedzial;
  38.                 }
  39.                 else
  40.                 {
  41.                     przedzial[0] = tab[p];
  42.                     przedzial[1] = tab[p+1];
  43.                     return przedzial;
  44.                 }
  45.             }
  46.             int s = (l + p) / 2;
  47.             if(x <= tab[s])
  48.             {
  49.                 return Algorytm(tab, x, l, s);
  50.             }
  51.             else
  52.             {
  53.                 return Algorytm(tab, x, s + 1, p);
  54.             }
  55.         }
  56.         static int Znajdz(int[] tab, int szukana, int pocz, int kon)
  57.         {
  58.             if (pocz == kon)
  59.             {
  60.                 if (tab[pocz] == szukana && pocz != 0)
  61.                     return pocz;
  62.                 if (szukana > tab[pocz])
  63.                     return -2;
  64.                 return -1; //dlatego, że liczba albo jest na [0] albo jej wgl nie ma, jest mniejsza od najmniejszej liczby w tablicy 🙂
  65.             }
  66.             int mid = (pocz + kon) / 2;
  67.             if (szukana == tab[mid])
  68.                 return mid;
  69.             if (szukana > tab[mid])
  70.                 return Znajdz(tab, szukana, mid + 1, kon);
  71.             //if (szukana < tab[mid])
  72.             return Znajdz(tab, szukana, pocz, mid - 1);
  73.         }
  74.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement