میانه میانه‌ها
الگوریتم

همان‌طور که ذکر شد، میانه میانه‌ها به عنوان یک راه‌حل برای انتخاب عنصر محوری در الگوریتم انتخاب سریع مورد استفاده قرار می‌گیرد و شبه کد آن به صورت زیر است:
function select(list, left, right, n)
    if left = right
        return left
    loop
        pivotIndex := pivot(list, left, right)
        pivotIndex := partition(list, left, right, pivotIndex)
        if n = pivotIndex
            return n
        else if n < pivotIndex
            right := pivotIndex - 1
        else
            left := pivotIndex + 1
همانند انتخاب سریع در الگوریتم میانه میانه‌ها نیز یک زیر رَویه به نام «تقسیم کننده» وجود دارد که می‌تواند یک لیست را به دو بخش (اعضای کوچکتر از یک عنصر خاص و اعضای بزرگتر از آن) تقسیم کند. شبه کد یک تقسیم‌کننده که یک تقسیم بر پایهٔ [list[pivotindex انجام می‌دهد را در زیر می‌توانید مشاهده کنید:
function partition(list, left, right, pivotIndex)
     pivotValue := list[pivotIndex]
     swap list[pivotIndex] and list[right]  // Move pivot to end
     storeIndex := left
     for i from left to right-1
         if list[i] < pivotValue
             swap list[storeIndex] and list[i]
             increment storeIndex
     swap list[right] and list[storeIndex]  // Move pivot to its final place
     return storeIndex
تابع pivot بخش اصلی الگوریتم میانه میانه‌هاست. این تابع ورودی (یک لیست به طول n) را به گروه‌هایی با پنج عضو تقسیم کرده و میانهٔ هر گروه را محاسبه می‌کند. سپس به صورت بازگشتی میانهٔ اصلی n/5 میانه‌های بدست آمده در قسمت قبل را بدست می‌آورد:
function pivot(list, left, right)
     // for 5 or less elements just get median
     if right - left < 5:
         return partition5(list, left, right)
     // otherwise move the medians of five-element subgroups to the first n/5 positions
     for i from left to right in steps of 5
         // get the median of the i'th five-element subgroup
         subRight := i + 4
         if subRight > right:
             subRight := right

         median5 := partition5(list, i, subRight)
         swap list[median5] and list[left + floor((i - left)/5)]

     // compute the median of the n/5 medians-of-five
     return select(list, left, left + ceil((right - left) / 5) - 1, left + (right - left)/10)
تابع partition5 میانهٔ یک گروه با حداکثر پنج عضو را انتخاب می‌کند. یک راه ساده برای پیاده‌سازی این تابع استفاده از مرتب‌سازی درجی است.
در نهایت می‌توان عمکرد الگوریتم میانه میانه‌ها را به ۵ مرحله تقسیم کرد:
مرحله ۱:
تمامی n عضو به گروه‌های ۵ تایی دسته بندی می‌شوند. (در صورتی که تعداد عضو‌ها به ۵ قابل قسمت نباشد گروه آخر کمتر از ۵ عضو را در خود جای می‌دهد.)
مرحله ۲:
میانه هر یک از n/5 گروه‌های ایجاد شده پیدا می‌شوند. (ابتدا هر یک از این گروه ها در  o(1) مرتب شده و سپس میانۀ آنها انتخاب می‌شود.)
مرحله ۳:
به صورت بازگشتی میانه n/5 داده ها انتخاب می‌شود.
مرحله ۴:
با استفاده از تابع پارتیشن که میانۀ انتخابی را به عنوان عنصر محوری در ورودی دریافت می‌کند، با فرض اینکه میانۀ انتخابی k امین کوچکترین عضو باشد، داده ها به دو دستۀ k - 1 تایی و n - k تایی  تقسیم می‌شوند که تمامی اعضای آنها به ترتیب کوچکتر و بزرگتر از میانۀ انتخابی است.
مرحله ۵:
در این مرحله ۳ حالت وجود دارد:
اگر اندیس میانۀ انتخابی برابر i باشد: این عضو به عنوان جواب بازگردانده می‌شود.
اگر اندیس میانۀ انتخابی بزرگتر از i باشد: i امین کوچکترین عضو در بین داده‌های کوچکتر از میانه به عنوان جواب بازگردانده می‌شود.
اگر اندیس میانۀ انتخابی کوچکتر از i باشد: i - k امین کوچکترین عضو در بین داده‌های بزرگتر از میانه به عنوان جواب بازگردانده می‌شود.