PDA

View Full Version : سوال: جستجو در فایلهای بزرگ



ma.andishe
یک شنبه 17 آذر 1392, 16:32 عصر
فایلی دارم بسیار حجیم که اطلاعات اون رو توی یک ارایه ریختم که حدود 1 میلیون پانصد هزار ردیف شده است و من میخواهم ان را جستجو کنم با توجه به تعداد ردیف بالا زمان بر است
از دوستان اگه کسی اید ه ای بهتر دارد لطفا من رو راهنمایی کنه
ممنون

setroyd
یک شنبه 17 آذر 1392, 20:09 عصر
نه فقط نوع سرچ مهمه که برای ارایه های بزرگ من روش دودویی رو به شما پیشنهاد میکنم .

ma.andishe
دوشنبه 18 آذر 1392, 07:47 صبح
راه سریعتری جز آرایه نیست؟

vbhamed
چهارشنبه 27 آذر 1392, 07:38 صبح
سلام
دوست عزيز، جستجوي باينري يا همون دودويي كه setroyd عزيز اشاره كردن براي مقداري بيشتر از 2 ميليون ركورد در بدترين حالت تنها 22 مقايسه نياز داره و اين يعني تقريبا زماني برابر 0
راهي سريعتر از اين اصلا وجود نداره، البته بايد توجه كنيد كه براي اين نوع جستجو داده ها حتما بايد مرتب باشند

ضمنا نياز نيست كلي وقت صرف كنيد داده ها رو تو آرايه بريزيد، جستجوي دودويي رو مي‌تونيد مستقيما روي بانكتون پياده سازي كنيد، البته اگر تعداد دفعات جستجو زياده استفاده از آرايه مناسبتر هست چون خود خوندن از ديسك مخصوصا از يك فايل يا بانك اطلاعاتي بزرگ زمانبر هست و براي اونهم راه حل وجود داره و يك راه حل اينه كه مثلا هر 50000 ركورد از داده‌هاتون رو در يك جدول يا فايل جداگانه قرار بدين تا موقع دسترسي به اونها زمان تلف نشه يه چيزي شبيه ساختار سگمنت و آفست در RAM، البته يكم كار برنامه نويسي بيشتر ميشه ولي نتيجه نهايي خيلي رضايت بخش هست