binary Search < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 17:01 Do 14.06.2012 | Autor: | egal |
Aufgabe | Es handelt sich um das suchen von eingegebenen Zahlenwerten!
Diese werden erst sortiert und dann erfolgt die Binärsuche! |
public class BinarySearch { //aufzurufendes Objekt
int Zahl;
int binarySearch(int vector [], int number, int left, int right)
{
int Mitte = (left + right)/2;
if (vector [Mitte] == number)
Zahl = Mitte;
else if (vector [Mitte] >= number)
binarySearch( vector , number, left, Mitte);
else if (vector [Mitte] < number)
binarySearch( vector, number, Mitte + 1, right);
return Zahl;
}
public static void main (String []args)
{
int NUMBEROFINTS = 6;
int intVec [] =new int [NUMBEROFINTS];
intVec [0] = 2;
intVec [1] = 3;
intVec [2] = 7;
intVec [3] = 1;
intVec [4] = 4;
intVec [5] = 8;
for (int i = 0; i < intVec.length; i++)
{
System.out.print(intVec[i]+" ");
}
int t; //Hilfsspeicher t
for (int i = 0; i < intVec.length; i++)
{
for (int j = i; j < intVec.length; j++)
{
if (intVec[i] > intVec[j])
{
t = intVec[i];
intVec[i] = intVec[j];
intVec[j] = t;
}
}
}
System.out.println();
for (int i = 0; i < intVec.length; i++)
{
System.out.print(intVec[i]+" ");
}
System.out.println();
System.out.println("Zu suchender Wert: ");
int Num = Std.in.readInt();
BinarySearch bs= new BinarySearch();
int Index = bs.binarySearch ( intVec, Num, 0, intVec.length);
System.out.println("Zahl "+Num+" befindet sich an der Stelle "+Index);
}
}
Meine Frage:
Weshalb sagt man bei int Index = bs.binarySearch ( intVec, Num, 0, intVec.length); nicht int Index = bs.binarySearch ( intVec [], Num, 0, intVec.length); ??? Die zweite Option funktioniert nicht. intVec ist doch aber ein array, die ja mit eckigen Klammern zu versehen sind, wieso ist das in meinem Quelltext nicht der Fall?
oder ist mit intVec in meinem Fall die jeweilige Position gemeint (0-6) und mit intVec [] der Inhalt der jew. Positionen (1,2,3,4,7,8)??
|
|
|
|
Hallo egal,
> Es handelt sich um das suchen von eingegebenen
> Zahlenwerten!
>
> Diese werden erst sortiert und dann erfolgt die
> Binärsuche!
> public class BinarySearch { //aufzurufendes Objekt
>
> int Zahl;
> int binarySearch(int vector [], int number, int left, int
> right)
> {
> int Mitte = (left + right)/2;
> if (vector [Mitte] == number)
> Zahl = Mitte;
> else if (vector [Mitte] >= number)
> binarySearch( vector , number, left, Mitte);
> else if (vector [Mitte] < number)
> binarySearch( vector, number, Mitte + 1, right);
> return Zahl;
> }
>
> public static void main (String []args)
> {
> int NUMBEROFINTS = 6;
> int intVec [] =new int [NUMBEROFINTS];
> intVec [0] = 2;
> intVec [1] = 3;
> intVec [2] = 7;
> intVec [3] = 1;
> intVec [4] = 4;
> intVec [5] = 8;
>
> for (int i = 0; i < intVec.length; i++)
> {
> System.out.print(intVec+" ");
> }
> int t; //Hilfsspeicher t
> for (int i = 0; i < intVec.length; i++)
> {
> for (int j = i; j < intVec.length; j++)
> {
> if (intVec > intVec[j])
> {
> t = intVec;
> intVec = intVec[j];
> intVec[j] = t;
> }
> }
> }
> System.out.println();
> for (int i = 0; i < intVec.length; i++)
> {
> System.out.print(intVec+" ");
> }
> System.out.println();
> System.out.println("Zu suchender Wert: ");
> int Num = Std.in.readInt();
> BinarySearch bs= new BinarySearch();
> int Index = bs.binarySearch ( intVec, Num, 0,
> intVec.length);
> System.out.println("Zahl "+Num+" befindet sich an der
> Stelle "+Index);
> }
> }
>
> Meine Frage:
>
> Weshalb sagt man bei int Index = bs.binarySearch (
> intVec, Num, 0, intVec.length); nicht int Index =
> bs.binarySearch ( intVec [], Num, 0, intVec.length); ???
> Die zweite Option funktioniert nicht. intVec ist doch aber
> ein array, die ja mit eckigen Klammern zu versehen sind,
> wieso ist das in meinem Quelltext nicht der Fall?
>
Weil "intVec[]" nicht der Name des Arrays ist, sondern "intVec".
> oder ist mit intVec in meinem Fall die jeweilige Position
> gemeint (0-6) und mit intVec [] der Inhalt der jew.
> Positionen (1,2,3,4,7,8)??
Gruss
MathePower
|
|
|
|