Bir değer listenin yarısından fazlasını kaplıyorsa, liste sıralandığında tam ortadaki eleman mutlaka odur: yarıdan uzun bir blok, nereye yerleşirse yerleşsin ortayı kapsar. Bazı sorular sıraladıktan sonra tek bir indekse bakmaya iner.
ordered = sorted(scores, reverse=True)rank = 0while rank < len(ordered) and ordered[rank] > rank:rank += 1return rank
Sıralamak her zaman en hızlı yol değildir ama neredeyse her zaman en kolay doğru yoldur. Önce sıralayarak çöz ve geçtiğini gör; sonra "sıralamadan, tek geçişte yapabilir miyim?" diye sor. Çoğunluk elemanı için cevap evettir: bir aday ve bir sayaç yeter.