۰
subtitle
سلام جدول درهم سازی ساده ساختمان داده هستش با این فرضیات
index: یک اندیس از آرایه است
key: کلیدی است که قرار است وارد آرایه شود
array_length: طول آرایه است
شما باید یه ارایه ای بسازید که ابتدا کلید هارو سرجای خودش قرار بدین دوم اگر کلید ها سرجای خودش نبودن یه خونه دیگ براشون پیدا کنید.سیاست ها و الگوریتم های متفاوتی برای وقتی که کلید سرجای خودش قرار نمیگیره وجود داره توی سوال اول به سیاست وارسی خطی linear probing اشاره کرده.که توضیح میدم
توی سوال اول سطر اول سوال همون کلید ها هستن
توی سطر دوم شماره اندیس مربوط به هر کلید.که اگر اندیس های یکسان نداشته باشیم هر عنصر سر جای خودش قرار میگیره.
منظور از این دوسطر چیه؟یعنی کلید Aتو خونه ۳ قرار بگیره کلید B توی خونه ۵ قرار بگیره کلید C توی خونه ۳ قرار بگیره و به همین ترتیب ...
صورت سوال گفته با هر ترتیب دلخواه یعنی ممکنه اول G رو بخوای بذاری بعد D رو بذاری و ...
توی این سوال شما باید تک تک گزینه هارو تست کنید ، من پیشنهاد میکنم توی اینجور سوالا که همه گزینه ها باید تست بشن اول گزینه ۱ بعد گزینه ۴ بعد گزینه ۲ بعد گزینه ۳ رو تست کن.
اینطوری وقتی جواب گزینه ۴ باشه مجبور نیستی هرچهار تا گزینه رو چک کنی.
فک کنم شما دقیقا مفهموم هش رو در کنار وارسی خطی با هم نگرفتید.
فرض کنید ابتدا بخوایم A رو وارد هش کنیم ، A اندیس ۳ داره و توی خونه ۳ قرار میگیره(نکته اول :توی هش وقتی ارایه اولیه خالی باشه اولین عنصر حتما سرجای خودش قرار میگیره )
حالا قصد داریم کلید C رو وارد کنیم C اندیس ۳ رو داره به خونه ۳ مراجعه میشه پرهستش به ترتیب روی آرایه جلو میریم تا اولین خونه خالی بعدی رو بهش بدیم (سیاست وارسی خطی)
حالا قصد داریم B رو وارد کنیم B به خونه ۵ مراجعه میکنه ، چون اندیس صورت سوالش ۵ فرض شده.خونه ۵ خالیه سرجاش قرار میگیره
حالا قراره D وارد بشه اندیس ۴ رو داره طبق وارسی خطی اخرین خونه ی ارایه بهش میرسه
عنصر بعدی E با اندیس ۵ وارد میشه که جاش قبلا گرفته شده تا اخر ارایه میره جایی رو پیدا نمیکنه ، میاد از اول ارایه شروع میکنه خونه اول خالیه پس جاش پیدا شد
عنصر بعدی F با اندیس ۶ وارد میشه که جاش قبلا گرفته شده تا اخر ارایه میره جایی رو پیدا نمیکنه ، میاد از اول ارایه شروع میکنه و بالاخره یه خونه خالی پیدا میکنه
حالا قصد داریم کلید G رو وارد کنیم.G اندیس ۳ رو داره به خونه ۳ مراجعه میشه چون که پرهستش اولین خونه خالی بعد از ۳ رو بهش میدیم که میشه اندیس ۲ یعنی تا اخر رفت و پیدا نکرد دوباره اومد از اول شروع کرد تا یه جایی رو پیدا کرد
این مراحل ساخت گزینه ۱ بود.
توی بقیه گزینه ها هم به مورد مشابه خودت میتونی یه تحلیل سریع داشته باشی
شرط درستیش و یا بهتره بگیم الگوریتم کار اینه که یه عدد یا سرجای خودش باشه یا هم تو اولین خونه ی خالی بعدی !!! همین و فقط همین!
البته این حالتی هستش که هش + سیاست وارسی خطی منظورمونه.
گاهی وقتا میتونه سیاستش یه چیز دیگه باشه....
index: یک اندیس از آرایه است
key: کلیدی است که قرار است وارد آرایه شود
array_length: طول آرایه است
شما باید یه ارایه ای بسازید که ابتدا کلید هارو سرجای خودش قرار بدین دوم اگر کلید ها سرجای خودش نبودن یه خونه دیگ براشون پیدا کنید.سیاست ها و الگوریتم های متفاوتی برای وقتی که کلید سرجای خودش قرار نمیگیره وجود داره توی سوال اول به سیاست وارسی خطی linear probing اشاره کرده.که توضیح میدم
توی سوال اول سطر اول سوال همون کلید ها هستن
توی سطر دوم شماره اندیس مربوط به هر کلید.که اگر اندیس های یکسان نداشته باشیم هر عنصر سر جای خودش قرار میگیره.
منظور از این دوسطر چیه؟یعنی کلید Aتو خونه ۳ قرار بگیره کلید B توی خونه ۵ قرار بگیره کلید C توی خونه ۳ قرار بگیره و به همین ترتیب ...
صورت سوال گفته با هر ترتیب دلخواه یعنی ممکنه اول G رو بخوای بذاری بعد D رو بذاری و ...
توی این سوال شما باید تک تک گزینه هارو تست کنید ، من پیشنهاد میکنم توی اینجور سوالا که همه گزینه ها باید تست بشن اول گزینه ۱ بعد گزینه ۴ بعد گزینه ۲ بعد گزینه ۳ رو تست کن.
اینطوری وقتی جواب گزینه ۴ باشه مجبور نیستی هرچهار تا گزینه رو چک کنی.
فک کنم شما دقیقا مفهموم هش رو در کنار وارسی خطی با هم نگرفتید.
فرض کنید ابتدا بخوایم A رو وارد هش کنیم ، A اندیس ۳ داره و توی خونه ۳ قرار میگیره(نکته اول :توی هش وقتی ارایه اولیه خالی باشه اولین عنصر حتما سرجای خودش قرار میگیره )
حالا قصد داریم کلید C رو وارد کنیم C اندیس ۳ رو داره به خونه ۳ مراجعه میشه پرهستش به ترتیب روی آرایه جلو میریم تا اولین خونه خالی بعدی رو بهش بدیم (سیاست وارسی خطی)
حالا قصد داریم B رو وارد کنیم B به خونه ۵ مراجعه میکنه ، چون اندیس صورت سوالش ۵ فرض شده.خونه ۵ خالیه سرجاش قرار میگیره
حالا قراره D وارد بشه اندیس ۴ رو داره طبق وارسی خطی اخرین خونه ی ارایه بهش میرسه
عنصر بعدی E با اندیس ۵ وارد میشه که جاش قبلا گرفته شده تا اخر ارایه میره جایی رو پیدا نمیکنه ، میاد از اول ارایه شروع میکنه خونه اول خالیه پس جاش پیدا شد
عنصر بعدی F با اندیس ۶ وارد میشه که جاش قبلا گرفته شده تا اخر ارایه میره جایی رو پیدا نمیکنه ، میاد از اول ارایه شروع میکنه و بالاخره یه خونه خالی پیدا میکنه
حالا قصد داریم کلید G رو وارد کنیم.G اندیس ۳ رو داره به خونه ۳ مراجعه میشه چون که پرهستش اولین خونه خالی بعد از ۳ رو بهش میدیم که میشه اندیس ۲ یعنی تا اخر رفت و پیدا نکرد دوباره اومد از اول شروع کرد تا یه جایی رو پیدا کرد
این مراحل ساخت گزینه ۱ بود.
توی بقیه گزینه ها هم به مورد مشابه خودت میتونی یه تحلیل سریع داشته باشی
(۱۵ دى ۱۳۹۲ ۱۲:۴۴ ق.ظ)soheila2012 نوشته شده توسط: یعنی خیلی از اعداد جای خودشون نیستن.تا چند تا کلید مناسب خودشون داشته باشن درست میشه؟شرط درست بودن هش این نیست که یه تعداد عدد حتما سرجای خودشون باشن
شرط درستیش و یا بهتره بگیم الگوریتم کار اینه که یه عدد یا سرجای خودش باشه یا هم تو اولین خونه ی خالی بعدی !!! همین و فقط همین!
البته این حالتی هستش که هش + سیاست وارسی خطی منظورمونه.
گاهی وقتا میتونه سیاستش یه چیز دیگه باشه....