رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مثال متوسط ۱۲ دقیقه

رقابت مرتب‌سازی‌ها

روی ۲۰۰۰ عدد تصادفی، مرتب‌سازی حبابی را با sorted مقایسه کن و نتیجه را با O توضیح بده.

صورت مسئله

روی ۲۰۰۰ عدد تصادفی، مرتب‌سازی حبابی را با sorted مقایسه کن و نتیجه را با O توضیح بده.

مثال حل‌شده

رقابت مرتب‌سازی

متوسط

صورت مسئله

چرا sorted با اختلافِ زیاد می‌برد و این اختلاف با بزرگ‌شدن ورودی چه می‌شود؟

راه‌حل گام‌به‌گام

    ۴ گام باقی مانده
    import random, time
    
    def bubble(data):
        a = list(data)
        for i in range(len(a)):
            swapped = False
            for j in range(len(a) - 1 - i):
                if a[j] > a[j + 1]:
                    a[j], a[j + 1] = a[j + 1], a[j]
                    swapped = True
            if not swapped:
                break
        return a
    
    data = [random.randint(0, 10_000) for _ in range(2000)]
    t0 = time.perf_counter(); bubble(data); t1 = time.perf_counter()
    t2 = time.perf_counter(); sorted(data); t3 = time.perf_counter()
    print(f"حبابی: {t1-t0:.3f}s — آماده: {t3-t2:.5f}s")

    فرمول‌های مرتبط

    مطالب مرتبط

    از همین بخش و با برچسب‌های مشترک

    این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

    وضعیت پیشرفت برای رقابت مرتب‌سازی‌ها