Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #24303

Re: Simple Sort - the smallest sorting routine?

From Andrew Haley <andrew29@littlepinkcloud.invalid>
Subject Re: Simple Sort - the smallest sorting routine?
Newsgroups comp.lang.forth
References (6 earlier) <2013Jul6.153838@mips.complang.tuwien.ac.at> <5PednZKx29YYr0XMnZ2dnUVZ_qudnZ2d@supernews.com> <2013Jul7.115901@mips.complang.tuwien.ac.at> <vOWdnbVSbJX7y0TMnZ2dnUVZ_uWdnZ2d@supernews.com> <2013Jul7.141859@mips.complang.tuwien.ac.at>
Message-ID <wKKdnVVMtarQT0fMnZ2dnUVZ_vednZ2d@supernews.com> (permalink)
Date 2013-07-08 09:53 -0500

Show all headers | View raw


Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
> Andrew Haley <andrew29@littlepinkcloud.invalid> writes:
>>Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
>>> What is "Knuth 5.2.2"?
>>
>>I presume you must be joking.
> 
> No.
> 
>>Again, the analysis is in Knuth 5.2.2, on Page 123 of the first
>>edition.
> 
> Sound like a book.  I have a book by Knuth here, and there is a 5.2 on
> page 121, and it's about "Array declarations".  I don't find an
> analysis of Quicksort there.

Try the right book.  It's called Sorting and Searching.

> Concerning your measurements, could you make the code available?

'mkay, here it is.  The basic sorting algorithms are from Rosetta, but
any other errors are mine.  (I did find a bug in Rosetta's quicksort,
which is fixed here.  I should send it to them.)

Andrew.


#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <stdio.h>
#include <math.h>

long long comparisons;

class slow_compare {
public:
  int value;
  slow_compare(double d) { value = d; }
  slow_compare() { }
  bool operator< (const double &thing) const { return value < thing; }
  bool operator< (const slow_compare &thing) const {
    // for (volatile int i = 0; i <  10; i++);
    // comparisons++;
    return value < thing.value;
  }
  bool operator> (const double &thing) const { return value > thing; }
  bool operator> (const slow_compare &thing) const { return thing < *this; }
};

#define ValType slow_compare

unsigned long long xor64(){
    static unsigned long long x=88172645463325252LL;
    x^=(x<<13); x^=(x>>7); return (x^=(x<<17));
}

ValType median_of_three(ValType n0, ValType n1, ValType n2) {
    ValType t;
    if (n1 < n0) {
	t = n1;
	n1 = n0;
	n0 = t;
    }
    if (n2 < n1) {
	t = n2;
	n2 = n1;
	n1 = t;
    }
    if (n1 < n0) {
	return n0;
    } else {
	return n1;
    }
}

void insertion_sort(ValType *a, int n) {
    size_t i, j;
    ValType value;
    for (i = 1; i < n; i++) {
        value = a[i];
        for (j = i; j > 0 && value < a[j - 1]; j--) {
            a[j] = a[j - 1];
        }
        a[j] = value;
    }
}

void quick_sort (ValType *a, int n) {
    if (n < 2)
        return;
    ValType p = median_of_three(a[0], a[n/2], a[n-1]);
    ValType *l = a;
    ValType *r = a + n - 1;
    while (l <= r) {
        while (*l < p) {
            l++;
        }
        while (*r > p) {
            r--;
        }
	if (l <= r) {
	    ValType t = *l;
	    *l++ = *r;
	    *r-- = t;
	}
    }
    quick_sort(a, r - a + 1);
    quick_sort(l, a + n - l);
}

void quick_sort_random_pivot (ValType *a, int n) {
    if (n < 2)
        return;
    int index = ((xor64() >> 32) * n) >> 32;
    ValType p = a[index];
    ValType *l = a;
    ValType *r = a + n - 1;
    while (l <= r) {
        while (*l < p) {
            l++;
        }
        while (*r > p) {
            r--;
        }
	if (l <= r) {
	    ValType t = *l;
	    *l++ = *r;
	    *r-- = t;
	}
    }
    quick_sort_random_pivot(a, r - a + 1);
    quick_sort_random_pivot(l, a + n - l);
}

void quick_sort_plus_insertion (ValType *a, int n) {
    if (n < 2)
        return;
    if (n < 64) {
    	insertion_sort(a,n);
    	return;
    }
    ValType p = median_of_three(a[0], a[n/2], a[n-1]);
    ValType *l = a;
    ValType *r = a + n - 1;
    while (l <= r) {
        while (*l < p) {
            l++;
        }
        while (*r > p) {
            r--;
        }
	if (l <= r) {
	    ValType t = *l;
	    *l++ = *r;
	    *r-- = t;
	}
    }
    quick_sort_plus_insertion(a, r - a + 1);
    quick_sort_plus_insertion(l, a + n - l);
}
 
void quick_sort_plus_insertion_another_way_inner (ValType *a, int n) {
    if (n < 64) {
    	return;
    }
    ValType p = median_of_three(a[0], a[n/2], a[n-1]);
    ValType *l = a;
    ValType *r = a + n - 1;
    while (l <= r) {
        while (*l < p) {
            l++;
        }
        while (*r > p) {
            r--;
        }
	if (l <= r) {
	    ValType t = *l;
	    *l++ = *r;
	    *r-- = t;
	}
    }
    quick_sort_plus_insertion_another_way_inner(a, r - a + 1);
    quick_sort_plus_insertion_another_way_inner(l, a + n - l);
}
 
void quick_sort_plus_insertion_another_way (ValType *a, int n) {
    quick_sort_plus_insertion_another_way_inner(a, n);
    insertion_sort(a,n);
}

void quick_sort_random_pivot_plus_insertion (ValType *a, int n) {
    if (n < 2)
        return;
    if (n < 64) {
    	insertion_sort(a,n);
    	return;
    }
    int index = ((xor64() >> 32) * n) >> 32;
    ValType p = a[index];
    ValType *l = a;
    ValType *r = a + n - 1;
    while (l <= r) {
        while (*l < p) {
            l++;
        }
        while (*r > p) {
            r--;
        }
	if (l <= r) {
	    ValType t = *l;
	    *l++ = *r;
	    *r-- = t;
	}
    }
    quick_sort_random_pivot_plus_insertion(a, r - a + 1);
    quick_sort_random_pivot_plus_insertion(l, a + n - l);
}
 
#define IS_LESS(v1, v2)  (v1 < v2)
 
void siftDown( ValType *a, int start, int count);
 
#define SWAP(r,s)  do{ValType t=r; r=s; s=t; } while(0)
 
void siftDown( ValType *a, int start, int end)
{
    int root = start;
 
    while ( root*2+1 < end ) {
        int child = 2*root + 1;
        if ((child + 1 < end) && IS_LESS(a[child],a[child+1])) {
            child += 1;
        }
        if (IS_LESS(a[root], a[child])) {
            SWAP( a[child], a[root] );
            root = child;
        }
        else
            return;
    }
}

void heapsort( ValType *a, int count)
{
    int start, end;
 
    /* heapify */
    for (start = (count-2)/2; start >=0; start--) {
        siftDown( a, start, count);
    }
 
    for (end=count-1; end > 0; end--) {
        SWAP(a[end],a[0]);
        siftDown(a, 0, end);
    }
}
 
static ValType a[1024];

typedef void (*sort_t)(ValType *a, int n);
typedef void (*init_t)(ValType *a, int n);

void sorted(ValType *a, int n) {
    for (int i = 0; i < n; i++)
	a[i] = i;
}    

void reversed(ValType *a, int n) {
    for (int i = 0; i < n; i++)
	a[i] = -i;
}    

void same(ValType *a, int n) {
    memset(a, 0, sizeof a);
}    

void randomized(ValType *a, int n) {
    for (int i = 0; i < n; i++)
	a[i] = rand();
}    

int trial (sort_t sort, init_t init) {
 
    struct timespec t0, t1;
    int n = sizeof a / sizeof a[0];
    double elapsed = 0;

    // warmup
    for (int i = 0; i < 1000; i++)
	sort(a,n);

    int loops = 100;
    double total_comparisons = 0;
    for (int counter = 0; counter < loops; counter++) {
	comparisons = 0;
	init(a, n);
	clock_gettime(CLOCK_THREAD_CPUTIME_ID, &t0);
	sort(a, n);
	clock_gettime(CLOCK_THREAD_CPUTIME_ID, &t1);
	elapsed += (t1.tv_sec + t1.tv_nsec/1.0e9)
	    - (t0.tv_sec + t0.tv_nsec/1.0e9);
	total_comparisons += comparisons;
    }

    ValType last = (int)-0x80000000;
    for (int i = 0; i < n; i++) {
	if (last > a[i])
	    abort();
	last = a[i];
    }

    if (comparisons)
	printf("%gus, %lg comparisons\n", round(elapsed / loops * 1.0e6),
	       round(total_comparisons / loops));
    else
	printf("%gus\n", round(elapsed / loops * 1.0e6));

    return 0;
}

#define TRIAL(name, init, s)			\
    printf("%s, %s: ", #name, s);		\
    trial(name, init);

int main () {
    /* int a[] = {4, 65, 2, -31, 0, 99, 2, 83, 782, 1}; */
 
    TRIAL(quick_sort, same, "all data the same");
    TRIAL(quick_sort, sorted, "already sorted");
    TRIAL(quick_sort, reversed, "reversed");
    TRIAL(quick_sort, randomized, "random data");

    printf("\n");

    TRIAL(quick_sort_random_pivot, same, "all data the same");
    TRIAL(quick_sort_random_pivot, sorted, "already sorted");
    TRIAL(quick_sort_random_pivot, reversed, "reversed");
    TRIAL(quick_sort_random_pivot, randomized, "random data");

    printf("\n");

    TRIAL(heapsort, same, "all data the same");
    TRIAL(heapsort, sorted, "already sorted");
    TRIAL(heapsort, reversed, "reversed");
    TRIAL(heapsort, randomized, "random data");

    printf("\n");

    TRIAL(quick_sort_plus_insertion, same, "all data the same");
    TRIAL(quick_sort_plus_insertion, sorted, "already sorted");
    TRIAL(quick_sort_plus_insertion, reversed, "reversed");
    TRIAL(quick_sort_plus_insertion, randomized, "random data");

    printf("\n");

    TRIAL(quick_sort_plus_insertion_another_way, same, "all data the same");
    TRIAL(quick_sort_plus_insertion_another_way, sorted, "already sorted");
    TRIAL(quick_sort_plus_insertion_another_way, reversed, "reversed");
    TRIAL(quick_sort_plus_insertion_another_way, randomized, "random data");

    printf("\n");

    TRIAL(quick_sort_random_pivot_plus_insertion, same, "all data the same");
    TRIAL(quick_sort_random_pivot_plus_insertion, sorted, "already sorted");
    TRIAL(quick_sort_random_pivot_plus_insertion, reversed, "reversed");
    TRIAL(quick_sort_random_pivot_plus_insertion, randomized, "random data");

    printf("\n");

    TRIAL(insertion_sort, same, "all data the same");
    TRIAL(insertion_sort, sorted, "already sorted");
    TRIAL(insertion_sort, reversed, "reversed");
    TRIAL(insertion_sort, randomized, "random data");

    return 0;
}
 

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Simple Sort - the smallest sorting routine? The Beez <the.beez.speaks@gmail.com> - 2013-06-25 13:12 -0700
  Re: Simple Sort - the smallest sorting routine? Mark Wills <markrobertwills@yahoo.co.uk> - 2013-06-25 23:48 -0700
    Re: Simple Sort - the smallest sorting routine? The Beez <the.beez.speaks@gmail.com> - 2013-06-26 09:11 -0700
  Re: Simple Sort - the smallest sorting routine? m.a.m.hendrix@tue.nl - 2013-06-26 02:03 -0700
  Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-06-26 11:25 -0500
    Re: Simple Sort - the smallest sorting routine? the_gavino_himself <visphatesjava@gmail.com> - 2013-06-26 12:36 -0700
      Re: Simple Sort - the smallest sorting routine? "Elizabeth D. Rather" <erather@forth.com> - 2013-06-26 09:49 -1000
    Re: Simple Sort - the smallest sorting routine? "WJ" <w_a_x_man@yahoo.com> - 2013-06-26 20:24 +0000
  Re: Simple Sort - the smallest sorting routine? "WJ" <w_a_x_man@yahoo.com> - 2013-06-26 20:23 +0000
    Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-06-26 13:35 -0700
      Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-06-26 16:37 -0700
        Re: Simple Sort - the smallest sorting routine? The Beez <the.beez.speaks@gmail.com> - 2013-06-27 01:31 -0700
          Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-06-27 04:04 -0500
          Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-06-30 09:27 -0700
            Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-06-30 13:23 -0700
            Re: Simple Sort - the smallest sorting routine? "Alex McDonald" <blog@rivadpm.com> - 2013-06-30 21:48 +0100
              Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-06-30 16:53 -0700
                Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-07-01 04:34 -0700
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-03 18:41 -0700
                Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-07-04 02:58 -0700
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-04 21:30 -0700
                Re: Simple Sort - the smallest sorting routine? "Alex McDonald" <blog@rivadpm.com> - 2013-07-06 00:18 +0100
                Re: Simple Sort - the smallest sorting routine? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-06 13:45 +0200
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-06 07:49 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-06 13:38 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-06 10:06 -0500
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-06 23:08 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-07 06:24 -0500
                Re: Simple Sort - the smallest sorting routine? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-07 23:47 +0200
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-07 09:59 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-07 06:52 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-07 12:18 +0000
                Re: Simple Sort - the smallest sorting routine? m.a.m.hendrix@tue.nl - 2013-07-08 00:06 -0700
                Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-08 09:50 +0000
                Re: Simple Sort - the smallest sorting routine? m.a.m.hendrix@tue.nl - 2013-07-08 03:14 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-08 09:53 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-09 14:25 +0000
                Re: Simple Sort - the smallest sorting routine? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-09 23:39 +0200
                Re: Simple Sort - the smallest sorting routine? Paul Rubin <no.email@nospam.invalid> - 2013-07-09 18:03 -0700
                Re: Simple Sort - the smallest sorting routine? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-10 23:05 +0200
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 03:21 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-10 10:29 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 05:44 -0500
                Re: Simple Sort - the smallest sorting routine? Paul Rubin <no.email@nospam.invalid> - 2013-07-10 04:07 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 06:06 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-10 14:21 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 04:45 -0500
                Re: Simple Sort - the smallest sorting routine? Paul Rubin <no.email@nospam.invalid> - 2013-07-10 03:13 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 05:09 -0500
                Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-10 12:16 +0000
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-10 10:38 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 06:45 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-10 13:56 +0000
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-10 10:54 -0700
                Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-07-10 13:57 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 07:15 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-10 13:52 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 15:00 -0500
                Re: Simple Sort - the smallest sorting routine? Coos Haak <chforth@hccnet.nl> - 2013-07-10 16:13 +0200
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 17:07 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-11 10:53 +0000
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-11 10:40 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-11 15:17 -0500
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-11 16:54 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-12 03:07 -0500
                Re: Simple Sort - the smallest sorting routine? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-07 00:43 +0200
                Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-07 00:21 +0000
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-06 20:32 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-07 06:38 -0500
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-07 07:05 -0500
                Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-07 13:00 +0000
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-07 09:47 -0700
                Re: Simple Sort - the smallest sorting routine? "Alex McDonald" <blog@rivadpm.com> - 2013-07-07 21:22 +0100
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-07 19:25 -0500
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-07 21:58 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-08 02:27 -0500
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-08 21:18 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-09 04:20 -0500
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-10 10:30 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 15:13 -0500
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-10 13:57 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-10 16:57 -0500
                Re: Simple Sort - the smallest sorting routine? Elizabeth D Rather <erather@forth.com> - 2013-07-10 13:00 -1000
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-10 22:19 -0700
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-11 10:23 -0700
                Re: Simple Sort - the smallest sorting routine? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-11 01:12 +0200
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-11 00:33 -0500
                Re: Simple Sort - the smallest sorting routine? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-11 11:48 +0200
                Re: Simple Sort - the smallest sorting routine? Paul Rubin <no.email@nospam.invalid> - 2013-07-11 03:08 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-11 05:00 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-11 10:17 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-11 06:53 -0500
                Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-11 15:21 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-11 10:37 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-11 17:07 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-11 15:19 -0500
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-11 17:33 +0000
                Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-11 18:18 +0000
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-11 16:46 -0700
                Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-07-12 03:48 -0700
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-12 10:55 -0700
                Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-12 19:29 +0000
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-15 09:50 +0000
                Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-07-12 13:22 -0700
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-13 20:05 -0700
                Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-14 11:34 +0000
                Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-07-14 09:18 -0700
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-14 16:05 -0700
                Re: Simple Sort - the smallest sorting routine? Ron Aaron <rambamist@gmail.com> - 2013-07-15 06:12 +0300
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-14 22:17 -0700
                Re: Simple Sort - the smallest sorting routine? Ron Aaron <rambamist@gmail.com> - 2013-07-15 11:44 +0300
                Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-07-15 09:42 -0700
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-16 18:03 -0700
                Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-07-17 00:54 -0700
                Re: Simple Sort - the smallest sorting routine? Howerd <howerdo@yahoo.co.uk> - 2013-07-14 10:09 -0700
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-14 15:35 -0700
                Re: Simple Sort - the smallest sorting routine? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-11 17:08 +0000
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-11 15:30 -0500
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-11 09:34 -0700
                Re: Simple Sort - the smallest sorting routine? Michael Morris <morrimichael@gmail.com> - 2013-07-15 23:09 -0500
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-16 17:46 -0700
                Re: Simple Sort - the smallest sorting routine? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-17 03:14 -0500
                Re: Simple Sort - the smallest sorting routine? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-17 21:47 -0400
                Re: Simple Sort - the smallest sorting routine? "Alex McDonald" <blog@rivadpm.com> - 2013-07-11 04:06 +0100
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-06 20:18 -0700
                Re: Simple Sort - the smallest sorting routine? "Alex McDonald" <blog@rivadpm.com> - 2013-07-07 16:48 +0100
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-07 09:13 -0700
                Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-07-07 09:13 -0700
                Re: Simple Sort - the smallest sorting routine? "Alex McDonald" <blog@rivadpm.com> - 2013-07-07 21:24 +0100
                Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-04 14:41 +0000
        Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-06-27 01:59 -0700
          Re: Simple Sort - the smallest sorting routine? hughaguilar96@yahoo.com - 2013-06-30 09:30 -0700
            Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-06-30 12:59 -0700
    Re: Simple Sort - the smallest sorting routine? awegel@arcor.de (Alex Wegel) - 2013-06-27 00:08 +0200
    Re: Simple Sort - the smallest sorting routine? Doug Hoffman <glidedog@gmail.com> - 2013-06-26 19:31 -0400
      Re: Simple Sort - the smallest sorting routine? Doug Hoffman <glidedog@gmail.com> - 2013-06-27 06:26 -0400
  Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-06-28 02:05 +0000
    Re: Simple Sort - the smallest sorting routine? Alex McDonald <blog@rivadpm.com> - 2013-07-04 07:33 -0700
      Re: Simple Sort - the smallest sorting routine? Coos Haak <chforth@hccnet.nl> - 2013-07-05 00:47 +0200
        Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-14 19:01 +0000
          Re: Simple Sort - the smallest sorting routine? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-15 01:28 +0000
        Re: Simple Sort - the smallest sorting routine? Ian Osgood <iano@quirkster.com> - 2013-07-19 11:29 -0700
  Re: Simple Sort - the smallest sorting routine? Brad Eckert <hwfwguy@gmail.com> - 2013-07-19 09:09 -0700

csiph-web