۰
subtitle
ارسال: #۱
  
مرتبه زمانی
باسلام
چرا حلقه داخلی ربطی به حلقه خارجی نداره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
چرا حلقه داخلی ربطی به حلقه خارجی نداره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
for(int i=0;i<n-i;++i
( for(int i=0;i<n-i;++i
}
/*process a*/
}
( for(int i=0;i<n-i;++i
}
/*process a*/
}
۰
ارسال: #۲
  
RE: مرتبه زمانی
ارسال: #۳
  
RE: مرتبه زمانی
(۰۵ آذر ۱۳۹۱ ۰۶:۵۳ ب.ظ)aatwo نوشته شده توسط:(05 آذر ۱۳۹۱ ۰۵:۵۹ ب.ظ)haamidit نوشته شده توسط: باسلام
چرا حلقه داخلی ربطی به حلقه خارجی نداره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
for(int i=0;i<n-i;++i
( for(int i=0;i<n-i;++i
}
/*process a*/
}
ربطی نداره چون در حلقه دوم i بازهم مقدار دهی شده
سلام
ببخشید همهتوت اشتباه گفتین ! به این دلیله که تو حلقه دوم دوباره i تعریف شده و کامپایلر این i رو از اون i مجزا میدونه.
۰
ارسال: #۴
  
مرتبه زمانی
اینبرنامه مشکل داره.
اولا چون اگر حلقه داخلی باشه نباید با متغیر i تعریف میشد چون این متغیر مربوط به حلقه بالاییه!
ثانیا اگر هم که حلقه بالایی تموم میشه قبل از این که حلقه دوم شروع بشه باید یه سمیکالن داشته باشه!
حالا اگر همه اینها رفع بشه! یعنی حلقه بالایی سمیکالن نداشته باشه اما حلقه داخلی با یه متغیر دیگه تعریف بشه (مثلا j) اونوقت اگه بازم حد بالای حلقه داخلی بازم همینی که هست باشه حتما حلقه داخلی به حلقه بالاییش وابسته است!
یعنی:
(for(int i=0;i<n-i;++i
(for(int j=0;j<n-i;++j
}
/*process a*/
{
حالا اگر for بالایی با یه سمیکالن آخرش همراه بشه و همه چیز همونی باشه که شما گفتید حلقه ها جدا از هم میشن!
یعنی این:
;(for(int i=0;i<n-i;++i
(for(int i=0;i<n-i;++i
}
/*process a*/
{
و حالت آخر اگر حلقه بالایی با یک متغیر دیگه باشه (مثلا j) و حلقه پایینی بی تغییر بمونه اونوقت بازم حلقه ها جدا از هم میشن!
یعنی:
(for(int j=0;j<n-j;++j
(for(int i=0;i<n-i;++i
}
/*process a*/
{
البته حالت های دیگه ای هم هست که فکر کنم این ۳تا واسه درک مطلب کافی باشن!
اولا چون اگر حلقه داخلی باشه نباید با متغیر i تعریف میشد چون این متغیر مربوط به حلقه بالاییه!
ثانیا اگر هم که حلقه بالایی تموم میشه قبل از این که حلقه دوم شروع بشه باید یه سمیکالن داشته باشه!
حالا اگر همه اینها رفع بشه! یعنی حلقه بالایی سمیکالن نداشته باشه اما حلقه داخلی با یه متغیر دیگه تعریف بشه (مثلا j) اونوقت اگه بازم حد بالای حلقه داخلی بازم همینی که هست باشه حتما حلقه داخلی به حلقه بالاییش وابسته است!
یعنی:
(for(int i=0;i<n-i;++i
(for(int j=0;j<n-i;++j
}
/*process a*/
{
حالا اگر for بالایی با یه سمیکالن آخرش همراه بشه و همه چیز همونی باشه که شما گفتید حلقه ها جدا از هم میشن!
یعنی این:
;(for(int i=0;i<n-i;++i
(for(int i=0;i<n-i;++i
}
/*process a*/
{
و حالت آخر اگر حلقه بالایی با یک متغیر دیگه باشه (مثلا j) و حلقه پایینی بی تغییر بمونه اونوقت بازم حلقه ها جدا از هم میشن!
یعنی:
(for(int j=0;j<n-j;++j
(for(int i=0;i<n-i;++i
}
/*process a*/
{
البته حالت های دیگه ای هم هست که فکر کنم این ۳تا واسه درک مطلب کافی باشن!
۰
ارسال: #۵
  
Re: مرتبه زمانی
دوستان یه مثال از یه الگوریتم بگید که نیاز به تغییر متغیر داشته باشه.
Sent from my Google Galaxy Nexus using Tapatalk 2.4
Sent from my Google Galaxy Nexus using Tapatalk 2.4
موضوعهای مرتبط با این موضوع... |
|||||
موضوع: | نویسنده | پاسخ: | بازدید: | آخرین ارسال | |
سلام لطفاً یکی به من بگه مرتبه زمانی ها چطوری به log تبدیل میشن فرمول داره؟؟ | Azadam | ۶ | ۴,۸۳۸ |
۰۶ دى ۱۴۰۰ ۰۹:۰۲ ق.ظ آخرین ارسال: Soldier's life |
|
مرتبه ایجاد درخت | rad.bahar | ۱ | ۳,۳۶۵ |
۳۰ مهر ۱۳۹۹ ۰۳:۳۴ ب.ظ آخرین ارسال: rad.bahar |
|
مرتبه شبه کد | rad.bahar | ۱ | ۲,۳۳۰ |
۲۲ مهر ۱۳۹۹ ۰۹:۳۲ ب.ظ آخرین ارسال: BBumir |
|
حل مساله مرتبه زمانی حلقه های تو در تو | sarashahi | ۱۶ | ۲۲,۹۲۶ |
۱۹ خرداد ۱۳۹۹ ۰۱:۱۶ ب.ظ آخرین ارسال: gillda |
|
مرتبه زمانی | Sanazzz | ۱۷ | ۲۱,۴۶۵ |
۰۹ اردیبهشت ۱۳۹۹ ۰۶:۴۶ ب.ظ آخرین ارسال: mohsentafresh |
|
پیچیدگی زمانی اکشن های قابل اعمال در یک وضعیت | اsepid8994 | ۰ | ۱,۷۸۴ |
۲۹ اسفند ۱۳۹۸ ۱۲:۵۱ ب.ظ آخرین ارسال: اsepid8994 |
|
مرتبه زمانی یافتن قطر | Sepideh96 | ۲ | ۳,۷۹۷ |
۰۸ آذر ۱۳۹۸ ۰۴:۳۴ ب.ظ آخرین ارسال: erfan30 |
|
مرتبه مانی | Sanazzz | ۳ | ۳,۶۹۷ |
۰۵ خرداد ۱۳۹۸ ۰۲:۳۶ ب.ظ آخرین ارسال: Sanazzz |
|
یافتن دو عدد پیچیدگی زمانی O(n) | porseshgar | ۲ | ۳,۹۲۷ |
۱۵ بهمن ۱۳۹۷ ۱۲:۱۶ ب.ظ آخرین ارسال: porseshgar |
|
مرتبه زمانی | Sanazzz | ۰ | ۲,۰۳۷ |
۰۴ بهمن ۱۳۹۷ ۰۵:۴۱ ب.ظ آخرین ارسال: Sanazzz |
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close