From cf3a29feb5887344b6633ead1b4b6d5657a15a4b Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Sun, 15 Jun 2014 03:24:33 +0200 Subject: old stuff: algorithms --- algorithms/blasort.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 algorithms/blasort.c (limited to 'algorithms/blasort.c') diff --git a/algorithms/blasort.c b/algorithms/blasort.c new file mode 100644 index 0000000..40c4c3e --- /dev/null +++ b/algorithms/blasort.c @@ -0,0 +1,46 @@ +#include + +#define N 4 + + +int* c=0; + +void +blasort(int* A, int i, int j) +{ + int tmp; + if(A[i]>A[j]) { + tmp=A[i]; + A[i] = A[j]; + A[j] = tmp; + } + + if(i+1>j || i+1==j) { + return; + } + + int k=(j-i+1)/3; + + blasort(A,i,j-k); + blasort(A,i+k,j); + blasort(A,i,j-k); + + *c++; +} + +int main(int argc, char** argv) +{ + int A[N] = {4,3,2,1}; + + blasort(A,0,N-1); + + unsigned int i; + for(i=0; i