PDA

View Full Version : سوال: انتخاب الگوریتم مرتب سازی مناسب



r0yaaa
سه شنبه 03 بهمن 1391, 02:25 صبح
سلام

فرض کنید یک فایل حجیم که شامل مشخصات شخصی ورودی دانشجویان داشته باشیم
میخوایم اطلاعات این فایل رو بر اساس شماره داشجویی مرتب کنیم
توجه داشته باشید که فایل حجیم هست و نمیشه کل اونو تو حافظه قرار داد
قطعه برنامه ای میخوام که با روش های مرتب سازی فاسل مذکور رو مرتب کنه

لطفا راهنمایی کنید

shahmohammadi
سه شنبه 03 بهمن 1391, 12:13 عصر
سلام.
یه نمونش می‌تونه merg sort باشه. ابتدا قطعه قطعه مرتب کنید. بعد قطعات رو مرج کنید.
به این صورت که ابتدا یک قطعه از فایل رو به حافظه می آرید. بعد اون رو مرتب کرده و در همون قسمت از فایل ذخیره می‌کنید. بعد قطعات دیگر. بعدش قطعات رو دو بدو مرج می کنید. شاید قسمت مرجش کمی کار بخاد.

pouyan.hosseini
سه شنبه 03 بهمن 1391, 15:10 عصر
Merge sort behtarin rahe in kare benazare man
safe wikipedia merge sort ro ye negahi bendaz
http://en.wikipedia.org/wiki/Merge_sort

smemamian
سه شنبه 03 بهمن 1391, 17:27 عصر
دوستان روش هرمی بهتر نیست ؟:متفکر:

hadi0x7c7
چهارشنبه 04 بهمن 1391, 08:11 صبح
استفاده از k-way merge بهترین روش میباشد. فرض کنید شما 3 گیگ رم دارید و فایلتون 15 گیگ هست, اونوقت با 5 تا فایل مرتب با روش heap soert میسازی و بعد اون 5 تا فایلو با هم merge میکنی. اینطوری فقط 15 گیگ میخونی و 15 گیگ مینویسی + هزینه 5 * (مرتب سازی فایل 3 گیگی).

r0yaaa
چهارشنبه 04 بهمن 1391, 13:02 عصر
دوستان قطعه برنامه ای در این مورد سراغ ندارید ؟!

UfnCod3r
چهارشنبه 04 بهمن 1391, 13:53 عصر
اول از همه بهتره فایل رو بهینه کنی که این همه فضا نگیره ! مثلا اگه 100 تا دانشجو داری که نامشون یکسانه لازم نیست 100 بار اون نامو بنویسی !
برا مرتب کردن هم شما می تونی اول همه شماره دانشجویی ها رو بخونی ! دیگه این که جا مشه !
بعد مرتبشون کنی و بر اساس اون اطلاعات یه دانشجو رو از فایل بخونی و اضافه کنی یه یه فایل جدید !