Population

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.

    B.The problem

    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.The idea of program
¡¡
I originally designed my data base architect as six fields which is "first name, last name, age, height, weight
¡¡
and education". (Does that remind you something?) I planned that the former field has a higher priority in
¡¡
sorting. so it might be able to be sorted by Radix sort. However, I wrote completely different a program, at
¡¡
least I thought it as.

    D.The major functions

    C.Further improvement

I try to make it generic, however I failed as the radix sorting details are different for string and integer.
¡¡
Not alone to mention other types of data. I used my favourite function array, int (*getBinArray[6])(Record*
¡¡
pRec, int length), to call different sorting by different field.
¡¡
¡¡
¡¡

    #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