you wish to contact me (Malcolm Phillips) about any of the information on my
site, please send an email to:
mbp2NOSPAM@i4freeNOSPAM.co.nz (Remove NOSPAM x2)
Sorry in advance if I don't reply promptly. I sometimes go for a week without checking my email. I'll get to it eventually.
also find me hanging out in the forums daily at
cboard.cprogramming.com under the name iMalc, where I regularly help rookie
programmers out. I've been known to post on other programming forums too
If what you see on this site interests you, I highly recommend download my
Demo program (104933 bytes zip file). It animates all of the array sorting
algorithms shown here, plus some that aren't. It can also scramble and sort
pixels of an image, which is neat to watch. There's nothing like seeing it in
I plan to release the entire source code to this in due course.
I love algorithms. Inventing, Implementing, Studying, Analysing etc, you name it. I
have taken particular interest in sorting algorithms. Not just the common ones,
I seek out the obscure ones as well, and invent my own twists on a few of them.
As far as I am aware, I have invented a unique and simple variation on
singly-liked-list-based quick sort that shifts the worst case away from the already sorted
case, and in fact makes that the fastest case. I still have not been able to
find any prior evidence of this technique anywhere else on the net.
My other programming hobbies are:
Optimisation. I'm guilty of premature optimisation all too often, but when it comes to getting important stuff done quickly I know when to keep it simple. I often pour over existing code to find out how it can be shortened whilst being made much simpler in the process. Bithacks are my thing. If you've ever seen beginners implementations of linked-list operations, you may already be quite familiar of how unnecessarily complicated code can be. By studying such examples and simplifying and optimising them, you can learn to write better and more efficient code straight off.
3D software engine. I started this about 9 years ago. Back then it was on a Mac, now runs on a PC. I have had various ideas for making a game out of it, but none have gotten past the ideas stage yet, and level design was not so appealing to me anyway.
I am most familiar with the programming languages:
C++/C, Delphi/Pascal, VB/Basic, C#, Prolog, but occasionally dabble in other languages.
Recently I began learning some MMX assembly programming.
My first computer was a Commodore VIC-20, then a Mac LC-II, then a Performa 6360 PPC, then a 333MHz iMac, then an AMD Thunderbird 1200MHz, then an AMD XP2600+. By the time you read this, my new Athlon 64 x2 6000+ system should have arrived. I have been programming since I owned the VIC-20 (which I still have). I also still have an LC-II (though not the original one I had).
I play online games every now and then. I enjoy the Unreal Tournament and Counter Strike line of games as well as Left 4 Dead. I also love Warcraft3 and Starcraft 2, though I mainly only play novelty maps such as tower defence and hero defence these days. I've also played plenty of MarioKart Wii.