1. sayfa
aynı yerde aynı olan kelimeleri mi? yoksa arama mı? |
iki txt dosyasındaki aynı olan kelimeleri bulup ekrana yazdırcak. |
Ben böyle yapardım; 1-) 2 txt'yi de oku. 2-) Okuduğun yazıyı bir string'e at. 3-) string[] txtDizi1 = txt1.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); fonksiyonu ile 2 tane dizi elde et. 4-) Artık elinde 2 txt dosyasınında tüm kelimeleri bir dizide. İç içe döngü ile çok rahat arayabilirsin. |
Hocam bu yöntemle yaptım ama 40320 adet kelimeyi 62500 kelime içinde arama yapmam lazım o yüzden çok yavaş oluyor.Daha iyi açıklamam gerekirse txt1 in içinde 40320 kelime var ve bu kelimelerden birtanesi txt2 dosyasında bulunan 62500 kelimeden bir tanesiyle aynı, bu aynı olan kelimeyi bulup ekrana yazdırcak. bunun daha hızlı yapabilcem bi karşılaştırma yöntemi yok mu? Veri tabanı kullansam hızlı olur mu? ben txtleri diziye aktarıp şu yöntemi kullandım: for(int k=0;k<40320;k++) for(int j=0;j<62500;j++) { if(dizi[k] == dizi2[j]) { kelime=dizi[k]; messageBox.Show(kelime); } } bu yöntem çok yavaş olduğu için verimsiz.Daha hızlı nasıl yaptırabilirim? |
hash table kullan bu sorununu çözecektir;) Murat AKKAN |mSharp Bilgisayar Mühendisi http://www.muratakkan.net |
Diziye atmak mı uzun sürüyor? Yoksa taramak mı? Eğer diziye atmak kısa sürüyorsa Array.Sort işlemi ile yapabilirsin. (Tabi string dizisini destekliyorsa). Ondan sonra kelimeyi daha hızlı bulursun diye tahmin ediyorum. Açıkcası kullanmadım hiç ama daha hızlı sonuç elde edersin diye umuyorum. NOT: Yaptıktan sonra bilgilendirirsen sevinirim :) |
Diziye atmak çok kısa sürüyor ama taraması çok uzun sürüyor. array.sort dizileri sıralıyor diye biliyorum nasıl kullanacağımki karşılaştırmada? |
Array.Sort ettikten sonra Array.BinarySearch ile daha kısa sürede bulursun bulmak istediğin kelimeyi. |
Dediğinizi bir araştırayım bende kullanmadığım için pek bilgim yok. |
verdiğiniz bilgi için saolun dediğiniz yöntem daha hızlı çözdü. |
indeks kullanaraz belirgin bir biçimde hızlanırsınız. eğer ki c# 2 ve üzerinde yer alan özel fonksiyon ve çözümleri kullanmaktan kaçınıyorsanız; bir matrisin birinci boyutunu kelimelerin ilk harfleri , ikincisini ise ayırdığınız kelimeleri kümelemek için iki boyutlu bir matris oluşturun:http://msdn.microsoft.com/es-es/library/aa288453(VS.71).aspx daha sonra her iki text dosyasındaki kelimeleri matrise ilk harflerine göre atın matrisin boyutlarını karşılık gelen boyut içinde çift döngü ile arayın |
ilginiz için teşekkürler ama söylediğiniz olayı biraz daha açar mısınız? |
Rica ederim. İyi çalışmalar... |
text dosyasından kelimeleri boşlukları bulup ayırırken ilk baştaki harf kaçıncı harf ise o harfe ait array e atın. daha sonra a harfi ile başlayan ali kelimesini 2. text dosyasının a array i içinde arayın. |
1. sayfa
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.