زمان کنونی: ۰۴ آذر ۱۴۰۳, ۰۲:۳۶ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

مرتبه یافتن k عنصر کوچک آرایه

ارسال:
  

Nesyan پرسیده:

مرتبه یافتن k عنصر کوچک آرایه

سلام
در آرایه n عنصری نامرتب، با چه مرتبه ای میتوان k عنصر کوچک آرایه را بصورت مرتب یافت؟

بهترین مرتبه اش میشه n + k logk . لطفا بگین چطوری این بدست میاد. مرسی
نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

sixsixsix پاسخ داده:

RE: مرتبه یافتن k عنصر کوچک آرایه

(۲۶ اسفند ۱۳۹۴ ۱۱:۱۹ ب.ظ)Nesyan نوشته شده توسط:  سلام
در آرایه n عنصری نامرتب، با چه مرتبه ای میتوان k عنصر کوچک آرایه را بصورت مرتب یافت؟

بهترین مرتبه اش میشه n + k logk . لطفا بگین چطوری این بدست میاد. مرسی

کافیه که عنصر k ام رو محور قرار بدید و تا عناصر کوچکتر از k ، قبل از عنصر و عناصر بزرگتر از k بعد از k قرار گیرد
مرتبه این عمل n هست
حالا باید عناصر قبل از k رو که همون عناصر کوچکتر از k هست با مرتبه klogk مرتب کنید
میشه O(n+klogk)
نقل قول این ارسال در یک پاسخ

ارسال:
  

Nesyan پاسخ داده:

RE: مرتبه یافتن k عنصر کوچک آرایه

(۲۶ اسفند ۱۳۹۴ ۱۱:۵۱ ب.ظ)sixsixsix نوشته شده توسط:  
(26 اسفند ۱۳۹۴ ۱۱:۱۹ ب.ظ)Nesyan نوشته شده توسط:  

کافیه که عنصر k ام رو محور قرار بدید و تا عناصر کوچکتر از k ، قبل از عنصر و عناصر بزرگتر از k بعد از k قرار گیرد
مرتبه این عمل n هست
حالا باید عناصر قبل از k رو که همون عناصر کوچکتر از k هست با مرتبه klogk مرتب کنید
میشه O(n+klogk)
متوجه شدم، خیلی ممنون
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

shbeheshti پاسخ داده:

RE: مرتبه یافتن k عنصر کوچک آرایه

(۲۶ اسفند ۱۳۹۴ ۱۱:۵۱ ب.ظ)sixsixsix نوشته شده توسط:  
(26 اسفند ۱۳۹۴ ۱۱:۱۹ ب.ظ)Nesyan نوشته شده توسط:  سلام
در آرایه n عنصری نامرتب، با چه مرتبه ای میتوان k عنصر کوچک آرایه را بصورت مرتب یافت؟

بهترین مرتبه اش میشه n + k logk . لطفا بگین چطوری این بدست میاد. مرسی

کافیه که عنصر k ام رو محور قرار بدید و تا عناصر کوچکتر از k ، قبل از عنصر و عناصر بزرگتر از k بعد از k قرار گیرد
مرتبه این عمل n هست
حالا باید عناصر قبل از k رو که همون عناصر کوچکتر از k هست با مرتبه klogk مرتب کنید
میشه O(n+klogk)

آرایه نامرتبه و ما باید ابتدا کوچکترین کلید K ام رو پیدا کنیم که اونم از مرتبه O(n) هستش بعد یه الگوریتم پارتیشن روش انجام بدیم تا عناصر کوچکتر از k یه جا جمع شن که اونم از مرنبه O(n) هستش و بعد با مرتبه klog(k) اونا رو مرتب کنیم
در کل میشه O(2n+klog(k)) که همون برابر O(n+klog(k)) هستش.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

reza.bsh پاسخ داده:

RE: مرتبه یافتن k عنصر کوچک آرایه

سلام
اگر قرار باشه k عنصر کوچک آرایه رو مرتب کنیم میشه n+klogk
ولی اگر قراره فقط kعنصر کوچیکو بدست بیاریم(مرتب بودنشون مهم نباشه) که با هزینه ۲n بدست میان.به این صورت که اول kامین عنصر کوچکو با هزینهn بدست میاریم و بعد عناصر کوچکتر از اونو از آرایه با هزینهn استخراج میکنیم.
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
Exclamation سلام لطفاً یکی به من بگه مرتبه زمانی ها چطوری به log تبدیل میشن فرمول داره؟؟ Azadam ۶ ۴,۹۱۸ ۰۶ دى ۱۴۰۰ ۰۹:۰۲ ق.ظ
آخرین ارسال: Soldier's life
  تکمیل قطعه کد مجموع آرایه Xzrix ۰ ۱,۴۹۰ ۰۲ دى ۱۳۹۹ ۰۷:۱۹ ب.ظ
آخرین ارسال: Xzrix
  مرتبه ایجاد درخت rad.bahar ۱ ۳,۳۸۴ ۳۰ مهر ۱۳۹۹ ۰۳:۳۴ ب.ظ
آخرین ارسال: rad.bahar
  مرتبه شبه کد rad.bahar ۱ ۲,۳۴۳ ۲۲ مهر ۱۳۹۹ ۰۹:۳۲ ب.ظ
آخرین ارسال: BBumir
  حل مساله مرتبه زمانی حلقه های تو در تو sarashahi ۱۶ ۲۳,۰۲۵ ۱۹ خرداد ۱۳۹۹ ۰۱:۱۶ ب.ظ
آخرین ارسال: gillda
  مرتبه زمانی Sanazzz ۱۷ ۲۱,۶۰۰ ۰۹ اردیبهشت ۱۳۹۹ ۰۶:۴۶ ب.ظ
آخرین ارسال: mohsentafresh
  مرتبه زمانی یافتن قطر Sepideh96 ۲ ۳,۸۰۹ ۰۸ آذر ۱۳۹۸ ۰۴:۳۴ ب.ظ
آخرین ارسال: erfan30
  مرتبه مانی Sanazzz ۳ ۳,۷۲۰ ۰۵ خرداد ۱۳۹۸ ۰۲:۳۶ ب.ظ
آخرین ارسال: Sanazzz
Question Pointer C++ آرایه کمک فوری ... porseshgar ۰ ۱,۶۸۰ ۰۳ اسفند ۱۳۹۷ ۰۲:۵۹ ب.ظ
آخرین ارسال: porseshgar
Question یافتن دو عدد پیچیدگی زمانی O(n) porseshgar ۲ ۳,۹۴۸ ۱۵ بهمن ۱۳۹۷ ۱۲:۱۶ ب.ظ
آخرین ارسال: porseshgar

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close