تالار گفتمان مانشت
سوال ۴۵ سال ۹۲ آی تی( مرتبه طولانی ترین زیر دنباله) - نسخه‌ی قابل چاپ

سوال ۴۵ سال ۹۲ آی تی( مرتبه طولانی ترین زیر دنباله) - tarane1992 - 21 آذر ۱۳۹۲ ۰۷:۱۹ ب.ظ

سلام

جواب گزینه ۴ هست.

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

یعنی منظور این سوال اینه که با فرض این که [tex]b_{1}< b_{2}< ...< b_{k}[/tex] همیشه برقرار باشه جواب که بزرکترین زیر دنبالست بدست میاد.یعنی هر n تا عنصر رو باید برسی کنیم که اگر شرط [tex]b_{1}< b_{2}< ...< b_{k}[/tex] برقرار باشه این زیر دنباله بزرگترین زیر دنبالست.همین.Shy
دوستانم نظرشونو بدن چرا گزینه های دیگه نشده ؟






مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


RE: سوال ۴۵ سال ۹۲ آی تی( مرتبه طولانی ترین زیر دنباله) - Riemann - 21 آذر ۱۳۹۲ ۰۷:۳۹ ب.ظ

شما این مسئله رو میتونید شبیه maximum subarraysum حل کنید.

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


RE: سوال ۴۵ سال ۹۲ آی تی( مرتبه طولانی ترین زیر دنباله) - tarane1992 - 21 آذر ۱۳۹۲ ۰۸:۰۳ ب.ظ

ببخشید شما خودتون توضیح بدید اگر امکانش هست Shy

اخه یه توضیحی بدید منم متوجه بشم.

آخه اینطوری که لینک دادید بیشتر موضوع رو پیچوندید.من متوجه نمیشم و با این الگوریتم اصلا آشنایی ندارم.Smile

RE: سوال ۴۵ سال ۹۲ آی تی( مرتبه طولانی ترین زیر دنباله) - Riemann - 21 آذر ۱۳۹۲ ۰۹:۰۰ ب.ظ

منطق کلی اینه که یه max کلی داریم و یه max محلی. بعد از اول ارایه شروع میکنیم، اگه a i از a i+1 کوچیک تر باشه ما مکس محلی رو زیاد میکنیم، ولی اگه اینطور نباشه کار این دنباله تموم میشه و اندازه اونو با مکس کلی مقایسه میکنیم ببینیم کدوم بزرگتره، بعد مکس محلی رو صفر میکنیم و به همین منوال.....

البته ممکنه ناقص باشه این کد:
کد:
global_max = -1
local_max = 0

a[1 .. n]

for i = 1 to n - 1
    if a[i] < a[i + 1]
        local_max++
    else
        global_max = max(global_max, local_max)
        local_max = 0;

retrun global_max