Merhaba
iki tane dizim var örnek olarak
Dizi1 : 1,3.4.6,9,11
Dizi2 : 3,9,15,16 gibi
kodla aynı olan sayıları bulmak istiyorum
yukardaki örnek diziye göre
Dizi3 : 3,9 olmalı
Sorunuma gelince dizi1 ve dizi2'nin eleman sayıları 80.000 'kadar çıkabilir.
Kullanıcıyı bu işlem yapılırken bekletmek istemiyorum.
Çözüm için aklıma bir yöntem geldi ancak kodu yazmadan sizlerinde fikrini almak istedim.
İki diziyi karşılaştırma ve benzerleri bulma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Selam,
Karşılaştırma işlemini Thread içinde yap, böylece bekletmezsin. Threadle ilgili bilgileri hem bu forumdan, hem de netten bulabilirsin. Kullanıcıyı bekletmemek için başka bir çözüm yolu da yok. Sadece Application.ProcessMessages var, ama onun da performansı Thread kadar yüksek olmaz. Ayrıca bu komutun kullanım amacı da zaten bu gibi işler değil.
Kolay gelsin
Bahadır Alkaç
Karşılaştırma işlemini Thread içinde yap, böylece bekletmezsin. Threadle ilgili bilgileri hem bu forumdan, hem de netten bulabilirsin. Kullanıcıyı bekletmemek için başka bir çözüm yolu da yok. Sadece Application.ProcessMessages var, ama onun da performansı Thread kadar yüksek olmaz. Ayrıca bu komutun kullanım amacı da zaten bu gibi işler değil.
Kolay gelsin
Bahadır Alkaç
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Benzer sorunla karşılaşanlara örnek kod. 1-2 saniyede 500.000 girişin benzer olanlarını çıkartıyor.
Kod: Tümünü seç
var
Form1: TForm1;
s,s1:TstringList;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
s:=TstringList.Create;
s1:=TstringList.Create;
for i :=1 to 500000 do
s.Add(inttostr(i));
for i :=200 to 2000 do
s.Add(inttostr(i));
s.Sort;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
j:integer;
begin
for j:=0 to s.Count-2 do
begin
if s[j]=s[j+1] then
s1.Add(s[j]);
end;
memo1.Text:=s1.Text;
end;