Skip to content

الفصل 22: الخوارزميات

المستوى: احترافي

22.1 الفرز السريع (Quick Sort)

sad
دالة فرز_سريع(مصفوفة)
    إذا (طول(مصفوفة) <= 1)
        ارجع مصفوفة
    نهاية

    متغير المحور = مصفوفة[0]
    متغير أصغر = []
    متغير أكبر = []

    متغير ف = 1
    بينما (ف < طول(مصفوفة))
        إذا (مصفوفة[ف] <= المحور)
            أصغر.أضف(مصفوفة[ف])
        وإلا
            أكبر.أضف(مصفوفة[ف])
        نهاية
        ف = ف + 1
    نهاية

    ارجع فرز_سريع(أصغر) + [المحور] + فرز_سريع(أكبر)
نهاية

22.2 البحث الثنائي

sad
دالة بحث_ثنائي(مصفوفة، هدف)
    متغير يسار = 0
    متغير يمين = طول(مصفوفة) - 1

    بينما (يسار <= يمين)
        متغير وسط = (يسار + يمين - (يسار + يمين) % 2) / 2
        إذا (مصفوفة[وسط] == هدف)
            ارجع وسط
        وإلا
            إذا (مصفوفة[وسط] < هدف)
                يسار = وسط + 1
            وإلا
                يمين = وسط - 1
            نهاية
        نهاية
    نهاية
    ارجع -1
نهاية

مُرخَّص بموجب رخصة MIT