Mega Code Archive

 
Categories / Delphi / Forum
 

Neoturk - re dizideki maximum elemanı bulmak

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]<matris[ddegiskeni] then 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 ]