Processing math: 100%

المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۱۸:تئوری:سوال ۱۵

مرتب کن

n‎ وزنه با وزن‌های مختلف به ما داده‌اند. می‌توانیم کل این وزنه‌ها را به دو مجموعه‌ی ‎A‎ و ‎B‎ افراز کنیم و به ‎«ماشین توازن‎» بدهیم. این ماشین به ما می‌گوید که هر عضو ‎A‎ از چند تا از اعضای ‎B‎ بزرگ‌تر است. یعنی خروجی این ماشین برای مقایسه‌ی ‎A‎ با ‎B‎، |A| تا عدد بین ‎0‎ تا ‎|B|‎ است.

دقت کنید که ‎A‎ و ‎B‎ همواره یک افراز‎ برای کل وزنه‌ها محسوب می‌شوند. یعنی ‎A‎ و ‎B‎ اشتراکی ندارند و اجتماعشان برابر کل وزنه‌هاست.

با ‎O(log(n))‎ بار استفاده از این ماشین وزنه‌ها را مرتب کنید.


ابزار صفحه