Radix sort
A.First Edition
This is first edition of my Radix sort. Originally I planned to do something else, however, it turned out not to
be what I expected.
The idea of Radix sort is to sort with different category which has an ordered priority. For example, sorting an
integer field, we start from the last digit and put all records into 10 different bins. That's why it is also
called bin sort. Then sort by the second last digit, and also put them into 10 different bins based on previous
sequence. So on and on. These categories need to be have a priority order which means that one category has a
higher priority than others. Say an integer with maximum of 6 digits. If the second digit can only be used to
decide the order unless the first digit cannot. The third can only be used to decided unless the second cannot.
C.Further improvement
#include <iostream> #include <iomanip> #include <time.h> using namespace std; const int MaxRecNumber=500; const int FirstNameSize = 5; const int LastNameSize = 7; char* eduStr[4]={ "primaryschool", "highschool", "college","university"}; enum Education {PrimarySchool, HighSchool, College, University}; char* fieldStr[6]= {"First", "Last", "Age", "Height", "Weight", "Edu"}; int lengthArray[6] = {FirstNameSize, LastNameSize, 2, 3, 2, 1}; int binArray[6] = {26, 26, 10, 10, 10, 10}; struct Record { char* first; char* last; int age; int height; int weight; Education education; }; Record* recList[MaxRecNumber]; void initialize(Record** theList, int theSize); void uninitialize(Record** theList, int theSize); void printList(Record** theList, int size); void genRec(Record*& pRec); char* randName(int size); int randNumber(int range, int base); void relRec(Record*& pRec); void printRec(Record* pRec); //void binSort(Record** theList, int theSize, bool (*comp[])(Record*, Record*), int category); void binSort(Record** theList, int theSize, int sortBy); int getBinFirst(Record* pRec, int length); int getBinLast(Record* pRec, int length); int getBinAge(Record* pRec, int length); int getBinHeight(Record* pRec, int length); int getBinWeight(Record* pRec, int length); int getBinEdu(Record* pRec, int length); void radix(Record** list, Record** temp, int size, int maxCategory, int binNum, int (*getBin)(Record* pRec, int length)); int (*getBinArray[6])(Record* pRec, int length)= {getBinFirst, getBinLast, getBinAge, getBinHeight, getBinWeight, getBinEdu}; int main() { int size=100; srand(time(0)); initialize(recList, size); printList(recList, size); for (int i=0; i<6; i++) { cout<<"now sort by "<<fieldStr[i]<<endl; binSort(recList, size, i); printList(recList, size); } uninitialize(recList, size); return 0; } int getBinHeight(Record* pRec, int length) { int mod=1; for (int i=0; i<(2-length); i++) { mod*=10; } return pRec->height/mod%10; } int getBinWeight(Record* pRec, int length) { int mod =1; for (int i=0; i<(1 - length); i++) { mod*=10; } return pRec->weight/mod%10; } int getBinEdu(Record* pRec, int length) { return pRec->education%4; } int getBinAge(Record* pRec, int length) { int mod=1; for (int i=0; i<(1- length); i++) { mod*=10; } return pRec->age/mod%10; } int getBinLast(Record* pRec, int length) { return pRec->last[length]-'a'; } int getBinFirst(Record* pRec, int length) { return pRec->first[length] - 'a'; } void radix(Record** list, Record** temp, int size, int length, int binNum, int (*getBin)(Record* pRec, int length)) { int* counter = new int[binNum]; int bin; for (int i=length-1; i>=0; i--) { for (int j=0; j<binNum; j++) { counter[j]=0; } for (j=0; j<size; j++) { bin= getBin(list[j], i); counter[bin]++; } for (j=1; j<binNum; j++) { counter[j]=counter[j-1]+counter[j]; } for (j=size-1; j>=0; j--) { bin=getBin(list[j], i); counter[bin]--; temp[counter[bin]]=list[j]; } for (j=0; j<size; j++) { list[j]=temp[j]; } } delete []counter; } void binSort(Record** theList, int theSize, int sortBy) { static Record** temp= NULL; if (temp==NULL) { temp = new Record*[theSize]; } radix(theList, temp, theSize, lengthArray[sortBy], binArray[sortBy], getBinArray[sortBy]); } void printRec(Record* pRec) { cout<<setw(FirstNameSize)<<pRec->first<<" "<<setw(LastNameSize)<<pRec->last <<" "<<setw(5)<<pRec->age<<setw(6)<<pRec->height<<setw(6)<<pRec->weight <<setw(18)<<eduStr[pRec->education]<<endl; } void printList(Record** theList, int size) { for (int i=0; i<size; i++) { printRec(theList[i]); } } int randNumber(int range, int base) { return rand()%range + base; } char* randName(int size) { char* ptr = new char[size+1]; for (int i=0; i<size; i++) { ptr[i] = rand()%26+'a'; } ptr[i]='\0'; return ptr; } void relRec(Record*& pRec) { //I am not sure if I need to delete from inside-out, try first //!!!in structure, you need to make sure all elements must be deleted!!! delete []pRec->first; delete []pRec->last; delete pRec; pRec=NULL; } void genRec(Record*& pRec) { pRec=new Record; pRec->first = randName(FirstNameSize); pRec->last = randName(LastNameSize); pRec->age = randNumber(5, 27); pRec->height = randNumber(10, 165); pRec->weight = randNumber(10, 45); pRec->education = (Education)(randNumber(4, 0)); } void initialize(Record** theList, int theSize) { for (int i=0; i<theSize; i++) { genRec(theList[i]); } } void uninitialize(Record** theList, int theSize) { for (int i=0; i<theSize; i++) { relRec(theList[i]); } }
The following result is sorting 100 records by different field which is not what I mean to do.
fcxfv ovanjxd 31 174 53 highschool rpoiw mikwhbx 29 167 45 university ferma askydeu 28 167 46 college dhuwg tztjwpd 30 169 45 college ecfyt bbvewzw 31 166 54 highschool vzokv qgtcvhk 29 167 45 university pozwq pqglufq 27 169 47 highschool hjiql bkpgswy 31 174 45 primaryschool oebbi ddrawmx 28 167 52 university vnuow nbsyfkm 27 168 48 primaryschool ihvpe bxbmmwk 31 170 51 college gcpfr khjambj 29 165 48 highschool preru whfsolc 30 165 48 university osbsp mgvjnsc 29 171 50 primaryschool krslf zgojvdt 27 172 48 highschool highx vottkdm 27 170 54 primaryschool ksvgc skrhtek 29 171 49 highschool mxhar luxdbku 30 174 46 highschool hiqkd ldbwhmz 30 167 46 college ifoqx ivyqfsp 29 165 49 highschool epkqb vojjpba 28 171 47 highschool ngqji uvlxqty 29 167 53 college iilhx tqztgjc 30 171 50 college abdiz tcfskxm 30 170 46 primaryschool pcnzj ncoqooo 28 174 52 primaryschool dltng uhnlvhl 28 169 47 primaryschool adllw ifoddpl 28 170 51 primaryschool fwzoo baagzem 28 166 51 college igpzv siwlgno 28 167 45 highschool pjlvi mtbbcyq 30 170 45 highschool hfxgi daiaqwj 30 171 46 primaryschool hybqy tfceeja 29 168 53 highschool rmpyt jqfdhmq 30 172 45 highschool azyyx kueochb 28 171 53 primaryschool hbckh ojepgsv 28 168 49 university dsicy lreuaaa 27 166 51 university yknfr sthijaj 30 173 54 college jdvvn qorxoxc 31 171 47 highschool tlxkk xmxmpwd 30 169 50 university skkzd qbqdjdr 29 173 54 primaryschool ewbiw uqocufa 29 170 48 college iwhhx kraxbqq 30 165 54 primaryschool kggfr hatpgdr 28 167 48 college gnhuz yigjqkw 27 171 51 college yvpkx jackpcu 30 172 52 primaryschool pqvpo dzbtmma 28 170 49 college gutys zowykpj 30 169 49 primaryschool bygvk fcihgmb 31 172 51 university hkjya xvcpbah 27 168 51 highschool xnume sdpkagc 28 171 51 college djrwz bavxqsq 31 171 52 university ctijp ctlsipo 28 166 45 college lxnal wnozezb 29 173 49 university wixwh wynrnhy 28 169 54 primaryschool ajooq ladqhhb 28 171 51 highschool qwrql kwmibod 28 169 45 university mmgwm yabyhtb 30 169 54 primaryschool pkwfh lbvugjl 28 170 46 primaryschool rytpd ivrwuts 28 170 48 highschool nutyc cmzbunl 31 169 49 university qcixp zdglahd 29 172 49 university iyuub xovihey 27 170 49 university ewsdj xswhved 27 169 47 university vrtpu qdhykyx 29 171 48 primaryschool aojpm slrftai 30 171 51 primaryschool pxpsy dvglgfh 31 172 46 primaryschool ziovc qhttplv 30 168 50 university tsrbk sycvftv 30 165 47 primaryschool dmmcy paimbwb 28 174 52 primaryschool yoevu vhzbilw 29 171 50 university ikalf lurhreh 28 169 49 college qcekd ctwmvyi 29 165 48 university jioyz bnuajza 28 172 51 college lmbra yykjsig 27 173 47 primaryschool dydzv deiapzh 29 173 47 university qyfdl dqblfdr 30 172 47 university jdjvt ezruxib 28 168 48 college upulc dztygou 30 170 54 primaryschool ztcyu hktqrou 27 169 46 college dfjoi qefaqba 29 169 47 college lqvrp ckpvbpv 30 174 53 primaryschool awqpu azvyfiq 29 169 47 college bygpw ragibrk 27 169 49 primaryschool iqjxf xcyvayp 29 174 52 university fdbni zegbumc 28 166 47 highschool lvucq hcdiixo 28 173 52 college hhtci xiptcun 27 166 50 university gmkfb confjxo 29 166 47 college luyxy lfsgllz 30 166 51 primaryschool eudrg xqbeott 31 166 46 primaryschool xjqtw chtjpsm 30 166 49 highschool tvxhy wsstgko 28 172 53 primaryschool pygqx ksvrqan 29 169 53 highschool uivgg ntfeuog 28 174 46 highschool enkbu nuvopvo 30 173 52 highschool wpavw itythhi 31 166 48 primaryschool vixny fwijbbt 29 166 53 primaryschool bkmhh tualvvf 27 170 47 primaryschool pzjhm glbumzm 31 168 47 primaryschool jpfay mkpvvme 31 166 50 college now sort by First abdiz tcfskxm 30 170 46 primaryschool adllw ifoddpl 28 170 51 primaryschool ajooq ladqhhb 28 171 51 highschool aojpm slrftai 30 171 51 primaryschool awqpu azvyfiq 29 169 47 college azyyx kueochb 28 171 53 primaryschool bkmhh tualvvf 27 170 47 primaryschool bygpw ragibrk 27 169 49 primaryschool bygvk fcihgmb 31 172 51 university ctijp ctlsipo 28 166 45 college dfjoi qefaqba 29 169 47 college dhuwg tztjwpd 30 169 45 college djrwz bavxqsq 31 171 52 university dltng uhnlvhl 28 169 47 primaryschool dmmcy paimbwb 28 174 52 primaryschool dsicy lreuaaa 27 166 51 university dydzv deiapzh 29 173 47 university ecfyt bbvewzw 31 166 54 highschool enkbu nuvopvo 30 173 52 highschool epkqb vojjpba 28 171 47 highschool eudrg xqbeott 31 166 46 primaryschool ewbiw uqocufa 29 170 48 college ewsdj xswhved 27 169 47 university fcxfv ovanjxd 31 174 53 highschool fdbni zegbumc 28 166 47 highschool ferma askydeu 28 167 46 college fwzoo baagzem 28 166 51 college gcpfr khjambj 29 165 48 highschool gmkfb confjxo 29 166 47 college gnhuz yigjqkw 27 171 51 college gutys zowykpj 30 169 49 primaryschool hbckh ojepgsv 28 168 49 university hfxgi daiaqwj 30 171 46 primaryschool hhtci xiptcun 27 166 50 university highx vottkdm 27 170 54 primaryschool hiqkd ldbwhmz 30 167 46 college hjiql bkpgswy 31 174 45 primaryschool hkjya xvcpbah 27 168 51 highschool hybqy tfceeja 29 168 53 highschool ifoqx ivyqfsp 29 165 49 highschool igpzv siwlgno 28 167 45 highschool ihvpe bxbmmwk 31 170 51 college iilhx tqztgjc 30 171 50 college ikalf lurhreh 28 169 49 college iqjxf xcyvayp 29 174 52 university iwhhx kraxbqq 30 165 54 primaryschool iyuub xovihey 27 170 49 university jdjvt ezruxib 28 168 48 college jdvvn qorxoxc 31 171 47 highschool jioyz bnuajza 28 172 51 college jpfay mkpvvme 31 166 50 college kggfr hatpgdr 28 167 48 college krslf zgojvdt 27 172 48 highschool ksvgc skrhtek 29 171 49 highschool lmbra yykjsig 27 173 47 primaryschool lqvrp ckpvbpv 30 174 53 primaryschool luyxy lfsgllz 30 166 51 primaryschool lvucq hcdiixo 28 173 52 college lxnal wnozezb 29 173 49 university mmgwm yabyhtb 30 169 54 primaryschool mxhar luxdbku 30 174 46 highschool ngqji uvlxqty 29 167 53 college nutyc cmzbunl 31 169 49 university oebbi ddrawmx 28 167 52 university osbsp mgvjnsc 29 171 50 primaryschool pcnzj ncoqooo 28 174 52 primaryschool pjlvi mtbbcyq 30 170 45 highschool pkwfh lbvugjl 28 170 46 primaryschool pozwq pqglufq 27 169 47 highschool pqvpo dzbtmma 28 170 49 college preru whfsolc 30 165 48 university pxpsy dvglgfh 31 172 46 primaryschool pygqx ksvrqan 29 169 53 highschool pzjhm glbumzm 31 168 47 primaryschool qcekd ctwmvyi 29 165 48 university qcixp zdglahd 29 172 49 university qwrql kwmibod 28 169 45 university qyfdl dqblfdr 30 172 47 university rmpyt jqfdhmq 30 172 45 highschool rpoiw mikwhbx 29 167 45 university rytpd ivrwuts 28 170 48 highschool skkzd qbqdjdr 29 173 54 primaryschool tlxkk xmxmpwd 30 169 50 university tsrbk sycvftv 30 165 47 primaryschool tvxhy wsstgko 28 172 53 primaryschool uivgg ntfeuog 28 174 46 highschool upulc dztygou 30 170 54 primaryschool vixny fwijbbt 29 166 53 primaryschool vnuow nbsyfkm 27 168 48 primaryschool vrtpu qdhykyx 29 171 48 primaryschool vzokv qgtcvhk 29 167 45 university wixwh wynrnhy 28 169 54 primaryschool wpavw itythhi 31 166 48 primaryschool xjqtw chtjpsm 30 166 49 highschool xnume sdpkagc 28 171 51 college yknfr sthijaj 30 173 54 college yoevu vhzbilw 29 171 50 university yvpkx jackpcu 30 172 52 primaryschool ziovc qhttplv 30 168 50 university ztcyu hktqrou 27 169 46 college now sort by Last ferma askydeu 28 167 46 college awqpu azvyfiq 29 169 47 college fwzoo baagzem 28 166 51 college djrwz bavxqsq 31 171 52 university ecfyt bbvewzw 31 166 54 highschool hjiql bkpgswy 31 174 45 primaryschool jioyz bnuajza 28 172 51 college ihvpe bxbmmwk 31 170 51 college xjqtw chtjpsm 30 166 49 highschool lqvrp ckpvbpv 30 174 53 primaryschool nutyc cmzbunl 31 169 49 university gmkfb confjxo 29 166 47 college ctijp ctlsipo 28 166 45 college qcekd ctwmvyi 29 165 48 university hfxgi daiaqwj 30 171 46 primaryschool oebbi ddrawmx 28 167 52 university dydzv deiapzh 29 173 47 university qyfdl dqblfdr 30 172 47 university pxpsy dvglgfh 31 172 46 primaryschool pqvpo dzbtmma 28 170 49 college upulc dztygou 30 170 54 primaryschool jdjvt ezruxib 28 168 48 college bygvk fcihgmb 31 172 51 university vixny fwijbbt 29 166 53 primaryschool pzjhm glbumzm 31 168 47 primaryschool kggfr hatpgdr 28 167 48 college lvucq hcdiixo 28 173 52 college ztcyu hktqrou 27 169 46 college adllw ifoddpl 28 170 51 primaryschool wpavw itythhi 31 166 48 primaryschool rytpd ivrwuts 28 170 48 highschool ifoqx ivyqfsp 29 165 49 highschool yvpkx jackpcu 30 172 52 primaryschool rmpyt jqfdhmq 30 172 45 highschool gcpfr khjambj 29 165 48 highschool iwhhx kraxbqq 30 165 54 primaryschool pygqx ksvrqan 29 169 53 highschool azyyx kueochb 28 171 53 primaryschool qwrql kwmibod 28 169 45 university ajooq ladqhhb 28 171 51 highschool pkwfh lbvugjl 28 170 46 primaryschool hiqkd ldbwhmz 30 167 46 college luyxy lfsgllz 30 166 51 primaryschool dsicy lreuaaa 27 166 51 university ikalf lurhreh 28 169 49 college mxhar luxdbku 30 174 46 highschool osbsp mgvjnsc 29 171 50 primaryschool rpoiw mikwhbx 29 167 45 university jpfay mkpvvme 31 166 50 college pjlvi mtbbcyq 30 170 45 highschool vnuow nbsyfkm 27 168 48 primaryschool pcnzj ncoqooo 28 174 52 primaryschool uivgg ntfeuog 28 174 46 highschool enkbu nuvopvo 30 173 52 highschool hbckh ojepgsv 28 168 49 university fcxfv ovanjxd 31 174 53 highschool dmmcy paimbwb 28 174 52 primaryschool pozwq pqglufq 27 169 47 highschool skkzd qbqdjdr 29 173 54 primaryschool vrtpu qdhykyx 29 171 48 primaryschool dfjoi qefaqba 29 169 47 college vzokv qgtcvhk 29 167 45 university ziovc qhttplv 30 168 50 university jdvvn qorxoxc 31 171 47 highschool bygpw ragibrk 27 169 49 primaryschool xnume sdpkagc 28 171 51 college igpzv siwlgno 28 167 45 highschool ksvgc skrhtek 29 171 49 highschool aojpm slrftai 30 171 51 primaryschool yknfr sthijaj 30 173 54 college tsrbk sycvftv 30 165 47 primaryschool abdiz tcfskxm 30 170 46 primaryschool hybqy tfceeja 29 168 53 highschool iilhx tqztgjc 30 171 50 college bkmhh tualvvf 27 170 47 primaryschool dhuwg tztjwpd 30 169 45 college dltng uhnlvhl 28 169 47 primaryschool ewbiw uqocufa 29 170 48 college ngqji uvlxqty 29 167 53 college yoevu vhzbilw 29 171 50 university epkqb vojjpba 28 171 47 highschool highx vottkdm 27 170 54 primaryschool preru whfsolc 30 165 48 university lxnal wnozezb 29 173 49 university tvxhy wsstgko 28 172 53 primaryschool wixwh wynrnhy 28 169 54 primaryschool iqjxf xcyvayp 29 174 52 university hhtci xiptcun 27 166 50 university tlxkk xmxmpwd 30 169 50 university iyuub xovihey 27 170 49 university eudrg xqbeott 31 166 46 primaryschool ewsdj xswhved 27 169 47 university hkjya xvcpbah 27 168 51 highschool mmgwm yabyhtb 30 169 54 primaryschool gnhuz yigjqkw 27 171 51 college lmbra yykjsig 27 173 47 primaryschool qcixp zdglahd 29 172 49 university fdbni zegbumc 28 166 47 highschool krslf zgojvdt 27 172 48 highschool gutys zowykpj 30 169 49 primaryschool now sort by Age ztcyu hktqrou 27 169 46 college dsicy lreuaaa 27 166 51 university vnuow nbsyfkm 27 168 48 primaryschool pozwq pqglufq 27 169 47 highschool bygpw ragibrk 27 169 49 primaryschool bkmhh tualvvf 27 170 47 primaryschool highx vottkdm 27 170 54 primaryschool hhtci xiptcun 27 166 50 university iyuub xovihey 27 170 49 university ewsdj xswhved 27 169 47 university hkjya xvcpbah 27 168 51 highschool gnhuz yigjqkw 27 171 51 college lmbra yykjsig 27 173 47 primaryschool krslf zgojvdt 27 172 48 highschool ferma askydeu 28 167 46 college fwzoo baagzem 28 166 51 college jioyz bnuajza 28 172 51 college ctijp ctlsipo 28 166 45 college oebbi ddrawmx 28 167 52 university pqvpo dzbtmma 28 170 49 college jdjvt ezruxib 28 168 48 college kggfr hatpgdr 28 167 48 college lvucq hcdiixo 28 173 52 college adllw ifoddpl 28 170 51 primaryschool rytpd ivrwuts 28 170 48 highschool azyyx kueochb 28 171 53 primaryschool qwrql kwmibod 28 169 45 university ajooq ladqhhb 28 171 51 highschool pkwfh lbvugjl 28 170 46 primaryschool ikalf lurhreh 28 169 49 college pcnzj ncoqooo 28 174 52 primaryschool uivgg ntfeuog 28 174 46 highschool hbckh ojepgsv 28 168 49 university dmmcy paimbwb 28 174 52 primaryschool xnume sdpkagc 28 171 51 college igpzv siwlgno 28 167 45 highschool dltng uhnlvhl 28 169 47 primaryschool epkqb vojjpba 28 171 47 highschool tvxhy wsstgko 28 172 53 primaryschool wixwh wynrnhy 28 169 54 primaryschool fdbni zegbumc 28 166 47 highschool awqpu azvyfiq 29 169 47 college gmkfb confjxo 29 166 47 college qcekd ctwmvyi 29 165 48 university dydzv deiapzh 29 173 47 university vixny fwijbbt 29 166 53 primaryschool ifoqx ivyqfsp 29 165 49 highschool gcpfr khjambj 29 165 48 highschool pygqx ksvrqan 29 169 53 highschool osbsp mgvjnsc 29 171 50 primaryschool rpoiw mikwhbx 29 167 45 university skkzd qbqdjdr 29 173 54 primaryschool vrtpu qdhykyx 29 171 48 primaryschool dfjoi qefaqba 29 169 47 college vzokv qgtcvhk 29 167 45 university ksvgc skrhtek 29 171 49 highschool hybqy tfceeja 29 168 53 highschool ewbiw uqocufa 29 170 48 college ngqji uvlxqty 29 167 53 college yoevu vhzbilw 29 171 50 university lxnal wnozezb 29 173 49 university iqjxf xcyvayp 29 174 52 university qcixp zdglahd 29 172 49 university xjqtw chtjpsm 30 166 49 highschool lqvrp ckpvbpv 30 174 53 primaryschool hfxgi daiaqwj 30 171 46 primaryschool qyfdl dqblfdr 30 172 47 university upulc dztygou 30 170 54 primaryschool yvpkx jackpcu 30 172 52 primaryschool rmpyt jqfdhmq 30 172 45 highschool iwhhx kraxbqq 30 165 54 primaryschool hiqkd ldbwhmz 30 167 46 college luyxy lfsgllz 30 166 51 primaryschool mxhar luxdbku 30 174 46 highschool pjlvi mtbbcyq 30 170 45 highschool enkbu nuvopvo 30 173 52 highschool ziovc qhttplv 30 168 50 university aojpm slrftai 30 171 51 primaryschool yknfr sthijaj 30 173 54 college tsrbk sycvftv 30 165 47 primaryschool abdiz tcfskxm 30 170 46 primaryschool iilhx tqztgjc 30 171 50 college dhuwg tztjwpd 30 169 45 college preru whfsolc 30 165 48 university tlxkk xmxmpwd 30 169 50 university mmgwm yabyhtb 30 169 54 primaryschool gutys zowykpj 30 169 49 primaryschool djrwz bavxqsq 31 171 52 university ecfyt bbvewzw 31 166 54 highschool hjiql bkpgswy 31 174 45 primaryschool ihvpe bxbmmwk 31 170 51 college nutyc cmzbunl 31 169 49 university pxpsy dvglgfh 31 172 46 primaryschool bygvk fcihgmb 31 172 51 university pzjhm glbumzm 31 168 47 primaryschool wpavw itythhi 31 166 48 primaryschool jpfay mkpvvme 31 166 50 college fcxfv ovanjxd 31 174 53 highschool jdvvn qorxoxc 31 171 47 highschool eudrg xqbeott 31 166 46 primaryschool now sort by Height qcekd ctwmvyi 29 165 48 university ifoqx ivyqfsp 29 165 49 highschool gcpfr khjambj 29 165 48 highschool iwhhx kraxbqq 30 165 54 primaryschool tsrbk sycvftv 30 165 47 primaryschool preru whfsolc 30 165 48 university dsicy lreuaaa 27 166 51 university hhtci xiptcun 27 166 50 university fwzoo baagzem 28 166 51 college ctijp ctlsipo 28 166 45 college fdbni zegbumc 28 166 47 highschool gmkfb confjxo 29 166 47 college vixny fwijbbt 29 166 53 primaryschool xjqtw chtjpsm 30 166 49 highschool luyxy lfsgllz 30 166 51 primaryschool ecfyt bbvewzw 31 166 54 highschool wpavw itythhi 31 166 48 primaryschool jpfay mkpvvme 31 166 50 college eudrg xqbeott 31 166 46 primaryschool ferma askydeu 28 167 46 college oebbi ddrawmx 28 167 52 university kggfr hatpgdr 28 167 48 college igpzv siwlgno 28 167 45 highschool rpoiw mikwhbx 29 167 45 university vzokv qgtcvhk 29 167 45 university ngqji uvlxqty 29 167 53 college hiqkd ldbwhmz 30 167 46 college vnuow nbsyfkm 27 168 48 primaryschool hkjya xvcpbah 27 168 51 highschool jdjvt ezruxib 28 168 48 college hbckh ojepgsv 28 168 49 university hybqy tfceeja 29 168 53 highschool ziovc qhttplv 30 168 50 university pzjhm glbumzm 31 168 47 primaryschool ztcyu hktqrou 27 169 46 college pozwq pqglufq 27 169 47 highschool bygpw ragibrk 27 169 49 primaryschool ewsdj xswhved 27 169 47 university qwrql kwmibod 28 169 45 university ikalf lurhreh 28 169 49 college dltng uhnlvhl 28 169 47 primaryschool wixwh wynrnhy 28 169 54 primaryschool awqpu azvyfiq 29 169 47 college pygqx ksvrqan 29 169 53 highschool dfjoi qefaqba 29 169 47 college dhuwg tztjwpd 30 169 45 college tlxkk xmxmpwd 30 169 50 university mmgwm yabyhtb 30 169 54 primaryschool gutys zowykpj 30 169 49 primaryschool nutyc cmzbunl 31 169 49 university bkmhh tualvvf 27 170 47 primaryschool highx vottkdm 27 170 54 primaryschool iyuub xovihey 27 170 49 university pqvpo dzbtmma 28 170 49 college adllw ifoddpl 28 170 51 primaryschool rytpd ivrwuts 28 170 48 highschool pkwfh lbvugjl 28 170 46 primaryschool ewbiw uqocufa 29 170 48 college upulc dztygou 30 170 54 primaryschool pjlvi mtbbcyq 30 170 45 highschool abdiz tcfskxm 30 170 46 primaryschool ihvpe bxbmmwk 31 170 51 college gnhuz yigjqkw 27 171 51 college azyyx kueochb 28 171 53 primaryschool ajooq ladqhhb 28 171 51 highschool xnume sdpkagc 28 171 51 college epkqb vojjpba 28 171 47 highschool osbsp mgvjnsc 29 171 50 primaryschool vrtpu qdhykyx 29 171 48 primaryschool ksvgc skrhtek 29 171 49 highschool yoevu vhzbilw 29 171 50 university hfxgi daiaqwj 30 171 46 primaryschool aojpm slrftai 30 171 51 primaryschool iilhx tqztgjc 30 171 50 college djrwz bavxqsq 31 171 52 university jdvvn qorxoxc 31 171 47 highschool krslf zgojvdt 27 172 48 highschool jioyz bnuajza 28 172 51 college tvxhy wsstgko 28 172 53 primaryschool qcixp zdglahd 29 172 49 university qyfdl dqblfdr 30 172 47 university yvpkx jackpcu 30 172 52 primaryschool rmpyt jqfdhmq 30 172 45 highschool pxpsy dvglgfh 31 172 46 primaryschool bygvk fcihgmb 31 172 51 university lmbra yykjsig 27 173 47 primaryschool lvucq hcdiixo 28 173 52 college dydzv deiapzh 29 173 47 university skkzd qbqdjdr 29 173 54 primaryschool lxnal wnozezb 29 173 49 university enkbu nuvopvo 30 173 52 highschool yknfr sthijaj 30 173 54 college pcnzj ncoqooo 28 174 52 primaryschool uivgg ntfeuog 28 174 46 highschool dmmcy paimbwb 28 174 52 primaryschool iqjxf xcyvayp 29 174 52 university lqvrp ckpvbpv 30 174 53 primaryschool mxhar luxdbku 30 174 46 highschool hjiql bkpgswy 31 174 45 primaryschool fcxfv ovanjxd 31 174 53 highschool now sort by Weight ctijp ctlsipo 28 166 45 college igpzv siwlgno 28 167 45 highschool rpoiw mikwhbx 29 167 45 university vzokv qgtcvhk 29 167 45 university qwrql kwmibod 28 169 45 university dhuwg tztjwpd 30 169 45 college pjlvi mtbbcyq 30 170 45 highschool rmpyt jqfdhmq 30 172 45 highschool hjiql bkpgswy 31 174 45 primaryschool eudrg xqbeott 31 166 46 primaryschool ferma askydeu 28 167 46 college hiqkd ldbwhmz 30 167 46 college ztcyu hktqrou 27 169 46 college pkwfh lbvugjl 28 170 46 primaryschool abdiz tcfskxm 30 170 46 primaryschool hfxgi daiaqwj 30 171 46 primaryschool pxpsy dvglgfh 31 172 46 primaryschool uivgg ntfeuog 28 174 46 highschool mxhar luxdbku 30 174 46 highschool tsrbk sycvftv 30 165 47 primaryschool fdbni zegbumc 28 166 47 highschool gmkfb confjxo 29 166 47 college pzjhm glbumzm 31 168 47 primaryschool pozwq pqglufq 27 169 47 highschool ewsdj xswhved 27 169 47 university dltng uhnlvhl 28 169 47 primaryschool awqpu azvyfiq 29 169 47 college dfjoi qefaqba 29 169 47 college bkmhh tualvvf 27 170 47 primaryschool epkqb vojjpba 28 171 47 highschool jdvvn qorxoxc 31 171 47 highschool qyfdl dqblfdr 30 172 47 university lmbra yykjsig 27 173 47 primaryschool dydzv deiapzh 29 173 47 university qcekd ctwmvyi 29 165 48 university gcpfr khjambj 29 165 48 highschool preru whfsolc 30 165 48 university wpavw itythhi 31 166 48 primaryschool kggfr hatpgdr 28 167 48 college vnuow nbsyfkm 27 168 48 primaryschool jdjvt ezruxib 28 168 48 college rytpd ivrwuts 28 170 48 highschool ewbiw uqocufa 29 170 48 college vrtpu qdhykyx 29 171 48 primaryschool krslf zgojvdt 27 172 48 highschool ifoqx ivyqfsp 29 165 49 highschool xjqtw chtjpsm 30 166 49 highschool hbckh ojepgsv 28 168 49 university bygpw ragibrk 27 169 49 primaryschool ikalf lurhreh 28 169 49 college gutys zowykpj 30 169 49 primaryschool nutyc cmzbunl 31 169 49 university iyuub xovihey 27 170 49 university pqvpo dzbtmma 28 170 49 college ksvgc skrhtek 29 171 49 highschool qcixp zdglahd 29 172 49 university lxnal wnozezb 29 173 49 university hhtci xiptcun 27 166 50 university jpfay mkpvvme 31 166 50 college ziovc qhttplv 30 168 50 university tlxkk xmxmpwd 30 169 50 university osbsp mgvjnsc 29 171 50 primaryschool yoevu vhzbilw 29 171 50 university iilhx tqztgjc 30 171 50 college dsicy lreuaaa 27 166 51 university fwzoo baagzem 28 166 51 college luyxy lfsgllz 30 166 51 primaryschool hkjya xvcpbah 27 168 51 highschool adllw ifoddpl 28 170 51 primaryschool ihvpe bxbmmwk 31 170 51 college gnhuz yigjqkw 27 171 51 college ajooq ladqhhb 28 171 51 highschool xnume sdpkagc 28 171 51 college aojpm slrftai 30 171 51 primaryschool jioyz bnuajza 28 172 51 college bygvk fcihgmb 31 172 51 university oebbi ddrawmx 28 167 52 university djrwz bavxqsq 31 171 52 university yvpkx jackpcu 30 172 52 primaryschool lvucq hcdiixo 28 173 52 college enkbu nuvopvo 30 173 52 highschool pcnzj ncoqooo 28 174 52 primaryschool dmmcy paimbwb 28 174 52 primaryschool iqjxf xcyvayp 29 174 52 university vixny fwijbbt 29 166 53 primaryschool ngqji uvlxqty 29 167 53 college hybqy tfceeja 29 168 53 highschool pygqx ksvrqan 29 169 53 highschool azyyx kueochb 28 171 53 primaryschool tvxhy wsstgko 28 172 53 primaryschool lqvrp ckpvbpv 30 174 53 primaryschool fcxfv ovanjxd 31 174 53 highschool iwhhx kraxbqq 30 165 54 primaryschool ecfyt bbvewzw 31 166 54 highschool wixwh wynrnhy 28 169 54 primaryschool mmgwm yabyhtb 30 169 54 primaryschool highx vottkdm 27 170 54 primaryschool upulc dztygou 30 170 54 primaryschool skkzd qbqdjdr 29 173 54 primaryschool yknfr sthijaj 30 173 54 college now sort by Edu hjiql bkpgswy 31 174 45 primaryschool eudrg xqbeott 31 166 46 primaryschool pkwfh lbvugjl 28 170 46 primaryschool abdiz tcfskxm 30 170 46 primaryschool hfxgi daiaqwj 30 171 46 primaryschool pxpsy dvglgfh 31 172 46 primaryschool tsrbk sycvftv 30 165 47 primaryschool pzjhm glbumzm 31 168 47 primaryschool dltng uhnlvhl 28 169 47 primaryschool bkmhh tualvvf 27 170 47 primaryschool lmbra yykjsig 27 173 47 primaryschool wpavw itythhi 31 166 48 primaryschool vnuow nbsyfkm 27 168 48 primaryschool vrtpu qdhykyx 29 171 48 primaryschool bygpw ragibrk 27 169 49 primaryschool gutys zowykpj 30 169 49 primaryschool osbsp mgvjnsc 29 171 50 primaryschool luyxy lfsgllz 30 166 51 primaryschool adllw ifoddpl 28 170 51 primaryschool aojpm slrftai 30 171 51 primaryschool yvpkx jackpcu 30 172 52 primaryschool pcnzj ncoqooo 28 174 52 primaryschool dmmcy paimbwb 28 174 52 primaryschool vixny fwijbbt 29 166 53 primaryschool azyyx kueochb 28 171 53 primaryschool tvxhy wsstgko 28 172 53 primaryschool lqvrp ckpvbpv 30 174 53 primaryschool iwhhx kraxbqq 30 165 54 primaryschool wixwh wynrnhy 28 169 54 primaryschool mmgwm yabyhtb 30 169 54 primaryschool highx vottkdm 27 170 54 primaryschool upulc dztygou 30 170 54 primaryschool skkzd qbqdjdr 29 173 54 primaryschool igpzv siwlgno 28 167 45 highschool pjlvi mtbbcyq 30 170 45 highschool rmpyt jqfdhmq 30 172 45 highschool uivgg ntfeuog 28 174 46 highschool mxhar luxdbku 30 174 46 highschool fdbni zegbumc 28 166 47 highschool pozwq pqglufq 27 169 47 highschool epkqb vojjpba 28 171 47 highschool jdvvn qorxoxc 31 171 47 highschool gcpfr khjambj 29 165 48 highschool rytpd ivrwuts 28 170 48 highschool krslf zgojvdt 27 172 48 highschool ifoqx ivyqfsp 29 165 49 highschool xjqtw chtjpsm 30 166 49 highschool ksvgc skrhtek 29 171 49 highschool hkjya xvcpbah 27 168 51 highschool ajooq ladqhhb 28 171 51 highschool enkbu nuvopvo 30 173 52 highschool hybqy tfceeja 29 168 53 highschool pygqx ksvrqan 29 169 53 highschool fcxfv ovanjxd 31 174 53 highschool ecfyt bbvewzw 31 166 54 highschool ctijp ctlsipo 28 166 45 college dhuwg tztjwpd 30 169 45 college ferma askydeu 28 167 46 college hiqkd ldbwhmz 30 167 46 college ztcyu hktqrou 27 169 46 college gmkfb confjxo 29 166 47 college awqpu azvyfiq 29 169 47 college dfjoi qefaqba 29 169 47 college kggfr hatpgdr 28 167 48 college jdjvt ezruxib 28 168 48 college ewbiw uqocufa 29 170 48 college ikalf lurhreh 28 169 49 college pqvpo dzbtmma 28 170 49 college jpfay mkpvvme 31 166 50 college iilhx tqztgjc 30 171 50 college fwzoo baagzem 28 166 51 college ihvpe bxbmmwk 31 170 51 college gnhuz yigjqkw 27 171 51 college xnume sdpkagc 28 171 51 college jioyz bnuajza 28 172 51 college lvucq hcdiixo 28 173 52 college ngqji uvlxqty 29 167 53 college yknfr sthijaj 30 173 54 college rpoiw mikwhbx 29 167 45 university vzokv qgtcvhk 29 167 45 university qwrql kwmibod 28 169 45 university ewsdj xswhved 27 169 47 university qyfdl dqblfdr 30 172 47 university dydzv deiapzh 29 173 47 university qcekd ctwmvyi 29 165 48 university preru whfsolc 30 165 48 university hbckh ojepgsv 28 168 49 university nutyc cmzbunl 31 169 49 university iyuub xovihey 27 170 49 university qcixp zdglahd 29 172 49 university lxnal wnozezb 29 173 49 university hhtci xiptcun 27 166 50 university ziovc qhttplv 30 168 50 university tlxkk xmxmpwd 30 169 50 university yoevu vhzbilw 29 171 50 university dsicy lreuaaa 27 166 51 university bygvk fcihgmb 31 172 51 university oebbi ddrawmx 28 167 52 university djrwz bavxqsq 31 171 52 university iqjxf xcyvayp 29 174 52 university