algorytm.org

Implementacja w C#



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Szukanie połówkowe (binarne) - Implementacja w C#
Ocena użytkownikóww: *****  / 4
SłabyŚwietny
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);
		}
	}
}
Dodaj komentarz