۰
subtitle
ارسال: #۱
مرتبه ی زمانی ادغام k لیست مرتب شده
سلام دوستان
ما K لیست مرتب شده داریم که می خواهیم انها را در هم ادغام کنیم ایا طبق الگوریتم زیر مرتبه ی زمانی ان O(N)(مقدار N : تعداد کل عناصر K لیست)می تواند باشد
به این صورت که برای هر یک از K لیست یک اشاره گر به ابتدای هر یک از K لیست قرار می دهیم و با یک حلقه ی به طول N در هرمرحله عنصری از i امین k لیست را انتخاب می کنیم که بزرگترین مقدار عنصر در موقیعت اشاره گرهای k لیست داشته باشد و سپس اشاره گر را یک واحد جلو میبریم به همین صورت تا اخر .اگر این روش صحیح هست چرا در بعضی جاها نوشته شده است که ادغام kلیست مرتب شده از مرتبه ی Nlog(k) است ؟
شبه کد حل مسئله :
for(itoN)selectmax&p[j]print&p[j]++j
ممون بابت توجه تون
ما K لیست مرتب شده داریم که می خواهیم انها را در هم ادغام کنیم ایا طبق الگوریتم زیر مرتبه ی زمانی ان O(N)(مقدار N : تعداد کل عناصر K لیست)می تواند باشد
به این صورت که برای هر یک از K لیست یک اشاره گر به ابتدای هر یک از K لیست قرار می دهیم و با یک حلقه ی به طول N در هرمرحله عنصری از i امین k لیست را انتخاب می کنیم که بزرگترین مقدار عنصر در موقیعت اشاره گرهای k لیست داشته باشد و سپس اشاره گر را یک واحد جلو میبریم به همین صورت تا اخر .اگر این روش صحیح هست چرا در بعضی جاها نوشته شده است که ادغام kلیست مرتب شده از مرتبه ی Nlog(k) است ؟
شبه کد حل مسئله :
for(itoN)selectmax&p[j]print&p[j]++j
ممون بابت توجه تون