Ocena użytkownikóww: ***** / 4
Nadesłany przez Tomasz Lubiński, 04 września 2009 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
Szukanie polowkowe - C#/Class1.cs:
using System;
//Szukanie polowkowe (binarne)
//uwaga: elementy tablicy w C# numerowane sa od 0
// zatem nasza tablica ma indeksy od 0 do n-1
// a[0], a[1], ..., a[n-1]
//(c) 2009 by Tomasz Lubinski
//www.algorytm.org
namespace Szukanie_polowkowe
{
/// <summary>
/// //Szukanie polowkowe (binarne)
/// </summary>
class Class1
{
private static int []a;
/// <summary>
/// //Szukanie polowkowe (binarne)
/// </summary>
[STAThread]
static void Main(string[] args)
{
int n, x, l, p, s;
//pobierz dane od uzytkownika
Console.WriteLine("Podaj liczbe elementow tablicy");
n = int.Parse(Console.ReadLine());
a = new int[n];
for (int i=0; i<n; i++)
{
Console.WriteLine("Podaj element a["+i+"]");
a[i] = int.Parse(Console.ReadLine());
}
Console.WriteLine("Podaj element do wyszukania");
x = int.Parse(Console.ReadLine());
//szukaj elementu x
l = 0;
p = n - 1;
while (l <= p)
{
s = (l + p) / 2;
if (a[s] == x)
{
//podaj wynik
Console.WriteLine("Odnaleziono element "+x+" pod indeksem "+s);
//zakoncz program
return;
}
if (a[s] < x)
l = s + 1;
else
p = s - 1;
}
//podaj wynik
Console.WriteLine("Nie odnaleziono w tablicy elementu "+x);
}
}
}