kullanıcıları puanlarına göre yüksek düşüğe sıraladık.
kullanıcıları döndürdük
terchilerinden yukardan aşağı doğru,okulun kontenjanında yer varsa yerleştirdik, okulun da kontanjını bir düşürdük
veya kontenjan yoksa tercihlerinden sonrakine geçtik, bir önceki kontejanda yer varsa yoksa durumuyla yerleştirme olmazsa tercihlerin sonuna kadar uyguladık.
eğer 1 inci tercihine yerleştirilmediyse, kontenjandan dolayı yerleştirlemediği okul id lerini kullanıcıya özel bir yere yazdık.
daha sonra kazanan bir öğrenci kazandığı x sıradaki terchini değiştirdi,
yeni tercihine göre ve mevcut sıralamaya göre bu tercihine yerleşebiliyor mu ona bakıyoruz. yerleşemiyorsa bu kullanıcı ile işimiz bitti. fakat diğer kullanıcılarla iş var.
boşa çıkan tercih, diğer kullanıcıların kontenjan dolayı yerleşemediği okullar arasında var ise. etkilenen kulanıcıların puanlarına göre sıralayıp mini bir ilk tercih döngüsü yapılacak.
tabi bu işlem yapıldığında bir tercih daha boş çıkmış olacak ve sonraki etkilenen kullanıcılar için mini tercih döngüsü , etkilenen kullanıcı kalmayana kadar yapılacak.

ilk başa dönelim, tercihini değiştren ilk kullanıcı yeni tercihine yerleşebiliyorsa durumu için, yeni yerleştiği bölüme yerleşen en düşük puanı alan kendisi değilse için tercih döngüsü yapılacak, en düşük puanı alanın yerleşimi değiştiği için bu durumdan kaynaklanan etkilenme durumu için de tercih döngüsü yapılacak
hem de boşa çıkan ilk tercih için mini tercih döngüsü tekrar olacak.
tabi bu yazdığım durumlar kontenjanları dolu olduğu durum için boş olduğu durum farklı.
sadece etkilenenlerden yola çıkarak bayağı bir alt durum ve iç içe geçmiş döngüler oluşuyor.

en kısa yol ise birisi tercihini değiştirdiğinde o kişiden ve ondan daha az puan alan herkes için tercih döngüsünün baştan yapılması. ama bunu yaparken de işlem yapıalcak grupdaki herkesin yerleştirmediği varsayılacak ve bu grubun tercihleri kadar daha kontenjan boşa çıkmış olacak.