۰
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