Hallo,
@isilive:
Was tut denn dies Programm?
Delphi-Quellcode:
for i:=0 to arraysize do // arraysize=25 Mio.
begin
array1[i]:=int64_x; //irgendeine zahl, zB: Zufallszahl
for j:=0 to i-1 do
if int64_x = array1[j] then
found:=true;
end;
Es kann ja nichts finden. Du fügst eine Zahl bei Index i ein suchst aber bis Index i-1
Wie Aphton schon schrieb:
Du könntest die Daten sortieren oder stattdessen ein IndexFeld anlegen, dass dort die Daten sortiert vorliegen und dort dann die binäre Suche durchführen.
Delphi-Quellcode:
function VergleichsFunktion(i,j: integer):integer;
var
Test : Int64;
begin
result := 0;
Test := array[Index[i]]-array[Index[j]];
IF Test> 0 then
result := 1;
else
IF Test< 0 then
result := -1;
end;
...
//Daten auffüllen
if array[Index[i]]< array[Index[i]]
for i:=0 to arraysize do // arraysize=25 Mio.
begin
array1[i]:=int64_x;
Index[i]:= i;
end;
QuickSort(Index,VergleichsFunktion);
Wenn Du schon während des Aufbauens der Felder Doppelte vermeiden willst, kannst Du ja sortieren durch Einfügen anwenden.
Gruß Horst