آدرسدهی باز
|
|
ممکن است این مقاله نیازمند ویکیسازی باشد تا با استانداردهای کیفی ویکیپدیا همخوانی یابد. خواهشمندیم با افزودن پیوندهای داخلی مرتبط، یا با بهبود چیدمان به بهبود آن کمک کنید.
برای جزئیات بیشتر روی [نمایش] کلیک کنید.
هیچ دلیلی برای این برچسب ویکیسازی ذکر نشدهاست. میتوانید دلیلتان را با استفاده از پارامتر
|
آدرسدهی بازدر آدرس دهی باز (open addressing)،تمام عناصر در خود جدول درهم ذخیره میشوند، یعنی هر ورودی جدول یا حاوی یک عنصر از مجموعهٔ پویا، و یا حاوی NIL است. وقتی برای یک عنصر جستجو میکنیم، مشخصا مکانهای جدوا را آزمایش میکنیم تا عنصر مورد نظر یافت شود، ویا مشخص شود که این عنصر در جدول موجود نیست. بر خلاف روش زنجیرهای سازی هیچ لیست و یا عنصری خارج از جدول وجودد ندارد. بنابراین در آدرس دهی باز جدول در هم میتواند پر شود به طوری که دیگر نتوانیم هیچ درجی انجام دهیم، یک نتیجه این است که فاکتور بارα نمیتواند از ۱ فراتر رود.
برای انجام عملیات درج با استفاده از آدرس دهی باز، به صورت پی در پی جدول درهم را آزمایش، یا کاوش(probe) میکنیم تا یک مکان خالی پیدا کنیم و کلید را در آن قرار دهیم. به جای دنبالهٔ از قبل تعیین شدهٔ m-1,...,0,1(که به زمان (θ(nنیاز دارد)، دنبالهٔ مکانهایی که کاوش میشوند به کلیدی که میخواهیم درج کنیم بستگی دارد.برای تعیین اینکه کدام مکان ها اید کاوش شوند،تابع درهم ساز را طوری اصلاح میکنیم که شامل عدد کاوش (با شروع از 0)به عنوان ورودی دوم هم باشد.بنابراین تابع درهم ساز عبارت خواهد بود از h:U×{0,1,...,m-1}→{{{0,1,...,m-1}