img/znak_CRITTICALL.png img/znak_ALGIT.png

Sorting algorithm dedicated for exactly N elements


N Algorithm Example Invented by
1
 
         1 
         1 
ancient (reinvented by Digital Evolution)
2

if (a>b) {
    tmp=a;
    a=b;
    b=tmp;
}

         2  1 
compare  2  1 
swap     1  2 
         1  2 

More examples
ancient (reinvented by Digital Evolution)
3

if (a>c) {
    tmp=a;
    a=c;
    c=tmp;
}
if (a>b) {
    tmp=a;
    a=b;
    b=tmp;
} else {
    if (b>c) {
        tmp=b;
        b=c;
        c=tmp;
    }
}

         2  3  1 
compare  2  3  1 
swap     1  3  2 
compare  1  3  2 
compare  1  3  2 
swap     1  2  3 
         1  2  3 

More examples
ancient (reinvented by Digital Evolution)
4

if (a>d) {
    tmp=a;
    a=d;
    d=tmp;
}
if (b>c) {
    tmp=b;
    b=c;
    c=tmp;
}
if (a>b) {
    tmp=a;
    a=b;
    if (tmp>c) {
        goto gotolabel;
    }
    b=tmp;
}
if (c>d) {
    tmp=c;
    c=d;
    d=tmp;
    if (b>c) {
        tmp=b;
gotolabel:;
        b=c;
        c=tmp;
    }
}

         4  1  3  2 
compare  4  1  3  2 
swap     2  1  3  4 
compare  2  1  3  4 
compare  2  1  3  4 
tmp=a    2          
a=b      1  1  3  4 
compare  2     3       
b=tmp    1  2  3  4 
compare  1  2  3  4 
         1  2  3  4 

More examples
invented by Digital Evolution
5

if (a>e) {
    tmp=a;
    a=e;
    e=tmp;
}
if (b>d) {
    tmp=b;
    b=d;
    d=tmp;
}
if (a>b) {
    tmp=a;
    a=b;
    if (tmp>d) {
        goto label;
    }
    b=tmp;
}
if (d>e) {
    tmp=d;
    d=e;
    e=tmp;
    if (b>d) {
        tmp=b;
        label:;
        b=d;
        d=tmp;
    }
}
if (c>d) {
    tmp=c;
    c=d;
    if (tmp>e) {
        d=e;
        e=tmp;
    } else {
        d=tmp;
    }
} else {
    if (b>c) {
        tmp=b;
        if (a>c) {
            b=a;
            a=c;
        } else {
            b=c;
        }
        c=tmp;
    }
}

         4  1  5  3  2 
compare  4  1  5  3  2 
swap     2  1  5  3  4 
compare  2  1  5  3  4 
compare  2  1  5  3  4 
tmp=a    2             
a=b      1  1  5  3  4 
compare  2        3    
b=tmp    1  2  5  3  4 
compare  1  2  5  3  4 
compare  1  2  5  3  4 
tmp=c          5       
c=d      1  2  3  3  4 
compare        5     4 
d=e      1  2  3  4  4 
e=tmp    1  2  3  4  5 
         1  2  3  4  5 

More examples
invented by Digital Evolution