![]() |
مرتبه یافتن k عنصر کوچک آرایه - نسخهی قابل چاپ |
مرتبه یافتن k عنصر کوچک آرایه - Nesyan - 26 اسفند ۱۳۹۴ ۱۱:۱۹ ب.ظ
سلام در آرایه n عنصری نامرتب، با چه مرتبه ای میتوان k عنصر کوچک آرایه را بصورت مرتب یافت؟ بهترین مرتبه اش میشه n + k logk . لطفا بگین چطوری این بدست میاد. مرسی |
RE: مرتبه یافتن k عنصر کوچک آرایه - sixsixsix - 26 اسفند ۱۳۹۴ ۱۱:۵۱ ب.ظ
(۲۶ اسفند ۱۳۹۴ ۱۱:۱۹ ب.ظ)Nesyan نوشته شده توسط: سلام کافیه که عنصر k ام رو محور قرار بدید و تا عناصر کوچکتر از k ، قبل از عنصر و عناصر بزرگتر از k بعد از k قرار گیرد مرتبه این عمل n هست حالا باید عناصر قبل از k رو که همون عناصر کوچکتر از k هست با مرتبه klogk مرتب کنید میشه O(n+klogk) |
RE: مرتبه یافتن k عنصر کوچک آرایه - Nesyan - 27 اسفند ۱۳۹۴ ۱۲:۲۹ ب.ظ
(۲۶ اسفند ۱۳۹۴ ۱۱:۵۱ ب.ظ)sixsixsix نوشته شده توسط:متوجه شدم، خیلی ممنون(26 اسفند ۱۳۹۴ ۱۱:۱۹ ب.ظ)Nesyan نوشته شده توسط: |
RE: مرتبه یافتن k عنصر کوچک آرایه - shbeheshti - 27 اسفند ۱۳۹۴ ۰۶:۴۸ ب.ظ
(۲۶ اسفند ۱۳۹۴ ۱۱:۵۱ ب.ظ)sixsixsix نوشته شده توسط:(26 اسفند ۱۳۹۴ ۱۱:۱۹ ب.ظ)Nesyan نوشته شده توسط: سلام آرایه نامرتبه و ما باید ابتدا کوچکترین کلید K ام رو پیدا کنیم که اونم از مرتبه O(n) هستش بعد یه الگوریتم پارتیشن روش انجام بدیم تا عناصر کوچکتر از k یه جا جمع شن که اونم از مرنبه O(n) هستش و بعد با مرتبه klog(k) اونا رو مرتب کنیم در کل میشه O(2n+klog(k)) که همون برابر O(n+klog(k)) هستش. |
RE: مرتبه یافتن k عنصر کوچک آرایه - reza.bsh - 08 اردیبهشت ۱۳۹۵ ۰۴:۱۸ ق.ظ
سلام اگر قرار باشه k عنصر کوچک آرایه رو مرتب کنیم میشه n+klogk ولی اگر قراره فقط kعنصر کوچیکو بدست بیاریم(مرتب بودنشون مهم نباشه) که با هزینه ۲n بدست میان.به این صورت که اول kامین عنصر کوچکو با هزینهn بدست میاریم و بعد عناصر کوچکتر از اونو از آرایه با هزینهn استخراج میکنیم. |