PDA

View Full Version : سوال: راهنمایی در مورد ب.م.م، جستجوی دودویی و ...



bahareh_khazali
سه شنبه 01 اسفند 1391, 11:51 صبح
گه ممکنه جواب منم بدید من تازه عضو سایت شما شدم و زیاد با برنامه نویسی آشنا نیستم
1)برنامه ای بنویسید که k امین عدد کوچکتر را در یک لیست n عنصری پیدا کند (استفاده از مرتب سازی ممنوع میباشد)
2)برنامه ای بنویسید که از روش جستجوی دودویی برای یافتن محل درج عنصر بعدی استفاده کند
3)برنامه ای بنویسید که ب م م دو عدد را حساب کند

maktoom
سه شنبه 01 اسفند 1391, 13:03 عصر
سلام
از شما توقع هست که سعی و تلاش خودتون رو نشون بدید. یعنی اینکه برای این لیستی که تهیه کردید، کد بنویسید در صورتی که به مشکل برخورد کردید مشکلتون رو مطرح کنید.
در غیر اینصورت مطمئن باشید با برخورد مدیران مواجه خواهید شد. از این هم که بگذریم، روند کار شما ختم به آموزش نمیشه.
ضمن اینکه بهتر نیست یکبار یاد بگیرید؟ و بارها استفاده کنید؟ تا اینکه بارها بپرسید و بعضا با برخوردهای تند مدیران مواجه بشید؟

bahareh_khazali
سه شنبه 01 اسفند 1391, 15:08 عصر
سلام ممنون از راهنمایی شما من یه مقداری نوشتم نمیدونستم باید برنامما بنویسم بعد ایرادشا بپرسم
باشه از این به بعد فقط ایراداما می پرسم
فقط میشه در مورد سوال اول یه راهنمایی بکنید

maktoom
پنج شنبه 03 اسفند 1391, 22:09 عصر
برای اینکه مثلا سومین عدد کوچ رو پیدا کنید این روش به نظر من میرسه: باید سه تا متغیر(شاید با آرایه بهتر باشه) کوچکترین و دومین کوچکترین و سومین کوچکترین رو تعیین کنید.
روشش هم اینه که اول باید اولین عد رو در هر سه این متغیرها قرار بدید و بعدش باید مقایسه ها رو از سومین کوچکترین شروع کنید. اگر مساوی یا بزرگتر بود که هیچی.
اگه کوچکر بود با دومین کوچکتر مقایسه می کنید. اگه بزرگتر بود با سومین کوچکتر جابه جا می کنید.
اگه کوچکتر از دومین کوچکتر هم بود، دومین کوچکتر رو توی سومین کوچکتر میریزد.
بعد عدد رو با اولین کوچکترین مقایسه می کنید اگه بزرگتر بود، عدد رو توی دومین کوچکتر میزارید و دومین کوچکتر رو توی سومین کوچکتر.
اگه عدد از کوچکترین هم کوچکتر بود، کوچکتر رو توی دومین کوچکترین قرار میدید و عدد رو داخل کوچکترین قرار میدید.
شاید پیچیده به نظر برسه.
اما کار کردش همینجوریه. مقایسه و جابه جایی از عدد اول لیست تا آخرین عدد.

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

ب.م.م یعنی بزرگترین مقسوم علیه. مقسوم علیه ها رو از بزرگ به کوچیک پیدا کنید و باهم مقایسه کنید. روش دیگه که بهینه باشه به نظرم نمیرسه.