امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
يه الگوريتم مي خوام براي جستجو در يك ارايه نزولي
نویسنده پیام
mobilemasoud آفلاین
تازه وارد

ارسال‌ها: 4
موضوع‌ها: 4
تاریخ عضویت: اسفند ۱۳۸۷

تشکرها : 2
( 0 تشکر در 0 ارسال )
ارسال: #1
at  يه الگوريتم مي خوام براي جستجو در يك ارايه نزولي
با سلام خدمت تمام دوستان عزيز شايد سوالم زياد سخت به نظر نرسه ولي چي كار كنم لازم دارم به زبان c لطفا برام بزارين يا برام email بزنيد mobilemasoud@gmail.com
۱۴-اسفند-۱۳۸۷, ۱۹:۵۹:۲۵
ارسال‌ها
پاسخ
Loyal آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 937
موضوع‌ها: 41
تاریخ عضویت: مهر ۱۳۸۵

تشکرها : 2541
( 3348 تشکر در 879 ارسال )
ارسال: #2
RE: يه الگوريتم مي خوام براي جستجو در يك ارايه نزولي
به کدوم زبان باید باشه؟ فقط الگوریتمشو میخوای؟
آرایه مرتب شده نزولیه؟
توضیح بیشتری بدی خیلی خوبه.

۱۷-اسفند-۱۳۸۷, ۰۲:۲۵:۰۹
وب سایت ارسال‌ها
پاسخ
Loyal آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 937
موضوع‌ها: 41
تاریخ عضویت: مهر ۱۳۸۵

تشکرها : 2541
( 3348 تشکر در 879 ارسال )
ارسال: #3
RE: يه الگوريتم مي خوام براي جستجو در يك ارايه نزولي
‌برای این کار میتونی از روش جستجوی دودویی استفاده کنی.

این کار را برای یک آرایه فرضی انجام می دهیم.
اندیس اولین خانه آرایه را L و اندیس آخرین خانه را H در نظر می گیریم. (مثلاً برای زمانی که آرایه از شماره 3 شروع شده و به 8 ختم می شود که در این حالت، اولین خانه 3 و آخرین خانه 7 خواهد بود)
middle هم مقدار میانی درنظر گرفته می شود.


آرایه ای با نام A که قرار است عنصر x در آن یافت شود.
ابتدا عنصر میانی آرایه را در نظر می گیریم. اگر عنصر x با عنصر میانی برابر بود کار تمام است. اگر از عنصر میانی کوچک تر بود آنگاه متغیر H را برابر با عنصر وسط منهای یک قرار می دهیم تا عناصر قبل از عنصر میانی را بررسی کنیم و به بعد از آن کاری نداریم.
اگر x از عنصر میانی بزرگتر بود آنگاه متغیر L را برابر عنصر میانی بعلاوه یک قرار می دهیم تا عناصر بعد از عنصر میانی بررسی شوند.
به همین ترتیب هردفعه نیمی از آرایه موجود کنار می رود تا وقتی که به جواب برسیم و سپس توسط دستور return جواب را به تابع برمی گردانیم.

حالا شبه کد رو می نویسیم.

کد php:
{
    
int middle ;
    
;
    
;
    while ( 
<= )
    {
        
middle = ( ) / ;
        if ( 
== A[middle] )
            return ( 
middle ) ;
        if ( 
A[middle] )
            
middle ;
        else
            
middle ;
    }
    return (
0);



البته این کد برای جستجو در آرایه صعودی نوشته شده. برای نزولی هم شبیه همینه. فقط یخورده دستکاری نیاز داره.

۱۹-اسفند-۱۳۸۷, ۰۲:۳۸:۳۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000, mobilemasoud


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Smile يه برنامه براي يادآوري كارها ميخوام كه بتونه ... modmon 4 3,622 ۱۱-آذر-۱۳۹۰, ۱۹:۱۵:۲۳
آخرین ارسال: kimiafars
  پياده سازي الگوريتم red وwred با متلب mfarahani 0 2,188 ۰۷-تير-۱۳۸۸, ۱۲:۲۵:۱۲
آخرین ارسال: mfarahani
  پروژه بررسی موتورهای جستجو در اینترنت سمیرا 0 3,088 ۰۵-خرداد-۱۳۸۷, ۱۰:۴۹:۱۳
آخرین ارسال: سمیرا
  در خواست كمك براي بازي اسمبلي marziyehesmaeili 2 2,775 ۰۱-بهمن-۱۳۸۶, ۱۸:۴۲:۲۵
آخرین ارسال: Mamad2003
  درخواست ساخت روبات براي ياهو ebrahim110 0 2,071 ۲۱-اردیبهشت-۱۳۸۶, ۲۰:۰۸:۱۳
آخرین ارسال: ebrahim110
  كمك كنيد: برنامه ايي به زبان c براي پرسنل و دانشجويان hhhhh 1 2,470 ۱۸-اسفند-۱۳۸۵, ۱۲:۴۹:۲۶
آخرین ارسال: Mamad2003
  موتور جستجو aisha 0 2,195 ۲۶-تير-۱۳۸۵, ۰۱:۱۹:۲۱
آخرین ارسال: aisha
  برنامه براي ارايه به عنوان پروژه درس كمپايلر ... NabiKAZ 0 2,082 ۱۳-دى-۱۳۸۴, ۱۶:۳۱:۲۸
آخرین ارسال: NabiKAZ
  يه آدم با مرام و با معرفت مي خوام كه برام يه كاري انجام وده؟ Iman400 1 2,376 ۳۰-آذر-۱۳۸۴, ۰۷:۴۰:۴۰
آخرین ارسال: kimia
  100000 تومان براي دلفي كارهاي متخصص brucelee 2 2,692 ۲۲-آبان-۱۳۸۳, ۰۶:۰۵:۲۵
آخرین ارسال: brucelee

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS