نمایش نتایج 1 تا 7 از 7

نام تاپیک: لطفا کمکم کنید در مورد آرایه ها مهم

  1. #1

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

    من میخوام یک آرایه درست کنم که در آن یک سری عدد رو بزارم بعد وقتی یکی از اون اعداد رو فراخوانی کردم عدد مقابل آن ظاهر شود بدون جستجو
    مثلا یک ارایه که در آن داشته باشیم
    12=ص
    255=ش
    44=س
    900=ل
    بعد اگر 255 را فراخوانی کنیم حرف ش به ما بدهد
    بهترین کار در این مورد چیست
    اگر میشه بدون پردازش و بدون گرفتن حافظه اضافی

  2. #2
    کاربر دائمی آواتار alireza643
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    روی زمین
    پست
    368
    خوب این حروف تو آرایه شما ذخیره شده یا نه
    --------------------
    فکر کنم اگر یه کم بیشتر توضیح بدید بهتر بشه کمکتون کرد ولی این توضیحاتی که در حال حاضر موجود هست خیلی گنگ و نامفهومه
    آخرین ویرایش به وسیله alireza643 : سه شنبه 07 شهریور 1385 در 14:04 عصر دلیل: این پست به دلیل تکراری بودن بطور خودکار ادغام شده است.

  3. #3
    کاربر دائمی آواتار Armanprogrammer
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    کرج
    پست
    109
    منظورت واضح نیست ولی خوب اگه یک آرایه دوبعدی بنویسی که عدد و تو اندیس 0 و حرفو تو اندیس 1 بذاری وقتی عدد و تایپ میکنی حرف و با یک دستور شرطی حرفو نشون بده order اونم 1 میشه

  4. #4
    بدون جستجو که نمیشه.
    باید از یکی از روشهای جستجو یا Hashing استفاده کنید.(که فکر میکنم منظور شما همینه)
    You never know what you can do until you try

  5. #5
    کاربر دائمی آواتار Arash_j13
    تاریخ عضویت
    آذر 1383
    محل زندگی
    مشهد
    پست
    114
    فکر کنم منظور شما استفاده از hash table هست برای اینکار به یه تابع hash نیاز دارید که با دادن عدد مورد نظر شما یه اندیس رو برگردونه و بتونید به خونه مورد نظر آرایه دسترسی داشته باشید

  6. #6
    دقیقا اینجوری لطفا بگو جه جوری
    --------------------
    آرش جان چه جور از Hash استفاده می کنند.
    آخرین ویرایش به وسیله aloneman2005 : سه شنبه 07 شهریور 1385 در 16:20 عصر دلیل: این پست به دلیل تکراری بودن بطور خودکار ادغام شده است.

  7. #7
    کاربر دائمی آواتار Arash_j13
    تاریخ عضویت
    آذر 1383
    محل زندگی
    مشهد
    پست
    114
    بحث جداول هاش بیشتر از اون چیزیه که توی یه پست بگم ولی روش کلی این جوریه که ما فضای زیادی رو اشغال می کنیم و تادسترسی به داده ها با بیشترین سرعت انجام بگیره برای اینکار معمولا بین 3 تا 11 برابر حداکثر مقدار داده ای که می خواید ذخیره کنید حافظه می گیرید حالا احتیاج به یه تابع اندیس گذار دارید که با دادن یه عدد بهش اندیس خونه ای که با اون داده مشخص می شه رو برگردونه کارایی برنامه شما دقیقا به همین تابع اندیس گذار بستگی داره اگه این تابع به اندازه کافی کوتاه و سریع باشه و فضا تخصیص داده شده به اندازه کافی بزرگ باشه که داده ها به هم برخورد نکن مرتبه زمانی دسترسی به داده های O(1) هست

    ساده ترین تابع اندیس گذار اینکه ورودی رو به پیمانه ی بزرگترین عدد کاهش بدیم

    inline int h(int x)
    {
    return x% MAX;
    }


    برای توضیح بیشتر در مورد تابع اندیس گذار و جداول hash بهتره به کتابهای ساختمان داده مراجعه کنید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •