userinfo close

  ,

بحث های علمی دانشگاه آزاد ساری


sari_university

تاسیس: 28 خرداد 1385  پروفایل کلوب
مدیر کلوب: پیمان رویین تن - معاونان
 

لیست بحث ها

  عناوین بحث ها ارسال کننده پاسخها بازدید بروز رسانی اولویت
22
244
90/12/1 (14:13)
1
21
89/7/29 (10:07)
5
58
89/3/20 (03:36)
7
43
88/10/24 (19:54)
7
38
88/9/17 (02:18)
2
22
88/7/19 (16:43)
0
9
88/6/28 (13:41)
0
10
88/5/15 (05:18)
0
14
88/5/15 (05:13)
2
226
87/11/15 (18:42)
0
10
87/5/2 (10:09)
0
14
87/4/18 (12:55)
0
32
87/4/10 (17:02)
6
68
86/12/5 (15:09)
20
162
86/11/8 (17:56)
0
10
86/9/27 (16:57)
1
13
86/9/24 (01:27)
0
12
86/9/20 (14:09)
8
47
86/9/17 (21:12)
4
35
86/9/2 (02:01)

عنوان بحث

پیمان رویین تن , overfl0w
پیمان رویین تن - 07:02 1385/11/12

ساختمان داده dictionary

کسی می دونه چطور می شه یک چنین ساختمان داده ای که دارای کارایی مناسب باشه تولید کرد؟
(توضیح: یه چیزی شبیه آرایه, فقط به جای اینکه بهش اندیس بدی, یک text می دی و یک value می گیری. مثل چیزی که تو #C داریم)
مسلما پیاده سازی روشی که متن رو در همه ی خونه ها جستجو کنه غیر قابل قبوله.
خواستم یک روش hashing پیش خودم درست کنم, دیدم خیلی خیلی خیلی زیاد حافظه مصرف می کنه. البته زیاد روش فکر نکردم.
ولی اگر کسی روش خوبی سراغ داره به ما خبر بده.
(نکته: یکی از پروژه های طراحی الگوریتم پیاده سازی فروشنده دوره گرد بود که به یک چنین ساختمان داده ای نیاز داشت. البته من اونو پیاده سازی کردم و بعد از تحویل اینجا می ذارم, ولی فکر می کنم روشی که خودم استفاده کردم باعث کم شدن بازده الگوریتم می شه)
  • ارسال پاسخ

پاسخ ها

ترتیب پاسخ ها : از اولین پاسخ
پیمان رویین تن , overfl0w
پیمان رویین تن - 21:36 1386/01/18
3
همونطوری که حدس می زدم این ساختمان داده پیاده سازی ساده ای نداره. تو جاوا از hashtable استفاده می کنه و برای قرار دادن هر key در این جدول متد hashCode اون رو فراخوانی می کنه تا موقعیتی که اون جفت key و value باید در این جدول قرار بگیرند رو معین کنه.
برای دریافت مقدار (value) هر key هم به همین ترتیب عمل می کنه که وقتی یک key رو به اون می دیم متد hashCode اون رو فراخوانی می کنه و از مقدار برگردونده شده برای پیدا کردن موقعیت value ی اون استفاده می کنه و به این ترتیب ساختمان داده ای که تو #C بهش dictionary گفته می شه و نمی دونم تو جاوا بهش چی می گن رو در اختیار خواهیم داشت!
ولی خب یه مسئله اصلی در پیاده سازی اون اینه که چطور پیاده سازی بشه تا به طور کاملا بهینه و بدون اتلاف مقدار زیادی از حافظه این ساختمان داده رو داشته باشیم!!
پیمان رویین تن , overfl0w
پیمان رویین تن - 04:44 1385/11/14
2
جالبه یه نفر جواب داد!!
مهم نیست تو چه زبونی باشه, ولی مسلما ما می خوایم پیاده سازیش کنیم. شما این مشکل رو حل کنید, من خودم پیاده سازی اون رو انجام می دم. فقط نمی خوام از ساختمان داده آماده ای که مثلا توی #C ارائه شده استفاده کنم.
کلوب دات کام
کلیه محتوای این سایت توسط کاربران درج شده است و کلوب دات کام هیچ مسئولیتی نسبت به آن ها ندارد.