Witam.
Mam program który wypisuje mi kilka liczb losowych do tablicy. I następnie gdy wpisuję wartość tablicy i dana wartość znajduje się w tablicy to program zwraca mi wartość indeksu tablicy a jeżeli nie wyświetla -1. Zostało mi jedynie do posortowania tablica. Muszę ją posortować za pomocą Array.Sort(Wektor) i właśnie tablica sortuje, tylko jest jakiś błąd bo jako Wektor[0] i Wektor[1] zawsze jest 0. Proszę o pomoc.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string a;
int Szukana;
int indeks;
int[] Wektor;
Random GeneratorLiczb;
int LiczbaWylosowana;
GeneratorLiczb = new Random();
LiczbaWylosowana = 0;
Wektor = new int[5];
for (int i = 0; i < Wektor.Length; i++)
{
LiczbaWylosowana = GeneratorLiczb.Next(10000);
Wektor[i] = LiczbaWylosowana;
Array.Sort(Wektor);
Console.WriteLine("Tablica [" + i + "] = " + Wektor[i]);
}
Console.WriteLine("Szukane x = ? ");
a = Console.ReadLine();
Szukana = Int32.Parse(a);
indeks = Wyszukiwanie(Wektor, Szukana);
Console.WriteLine("Szukany indeks to :" + indeks);
Console.Read();
}
public static int Wyszukiwanie(int[] Wektor, int x)
{
int i;
int j;
int k;
bool Zakoncz;
i = 0;
j = Wektor.Length - 1;
k = -1;
Zakoncz = false;
do
{
if (Wektor[i] == x)
{
k = i;
Zakoncz = true;
}
if (Wektor[j] == x)
{
k = j;
Zakoncz = true;
}
if (j - i <= 1)
{
if (Zakoncz == false)
{
k = -1;
Zakoncz = true;
}
}
if (Zakoncz == false)
{
k = (int)((j - i) / 2) + i;
if (Wektor[k] == x) Zakoncz = true;
if (Wektor[k] < x) i = k;
if (Wektor[k] > x) j = k;
}
}
while (Zakoncz == false);
return k;
}
}
}