Forum Delphi

arkadaşımız aşağıdaki kodu göndermiş, dizideki maximum veriyi bulmak için,
"
function dizi_Max(matris:Array of integer):integer;
var
ddegiskeni:integer;
begin
result:=0;
for ddegiskeni:=1 to 100 do
begin
if matris[ddegiskeni-1]result:=ddegiskeni+1;
end;
end;
"
herkese merhaba,
bu kod hakkında kısa bir yorum yapmak istiyorum,
bu kod çalışır, ama en fazla 100 elemanlı bir matris içindeki en büyük değeri bulur..
dinamik bir matris olarak tanıtılmamış.. yani N elemanlı bir matris olarak
düşünülseydi daha uygun olurdu..
herneyse, asıl diyeceğim şu,
bu şekilde bir MAX DEĞER bulma yöntemi son derece YAVAŞ çalışır.
çünkü LINEER (doğrusal) bir karşılaştırma yapılıyor.
yani her elemana tek tek bakılıyor. Bu işlem mühendislikte kabul görmez.
bunu yapmanın en kolay 2 yöntemi var, N elemanlı bir matristeki MAX değeri bulmak için,
1) math kütüphanesinde MAX - MIN fonksiyonları var, bu işi yapan.
bildirilen bir dizideki MAX-MIN değerini otomatik olarak result ettiriyor..
2) math kütüphanesini kullanmak istemiyorsanız şayet,
verilen bir N elemanlı matrisi QUICKSORT ile sıralatıp, ilk değeri veya son değeri
alırsanız aradığınız MAX veya MIN değerini elde etmiş olursunuz.
Biliyorsunuz ki QUICKSORT hızlıdır,
1000-2000 elemanı sıralamak milisaniye sürer...
lineer arama ve taramalardan kaçınmanızı tavsiye ediyorum arkadaşlar,
işlemlerin hızlı olması için yani....
saygılarımla_
neoturk [ xxnt03@lycos.co.uk ]