Triple State Quicksort

It’s been 4 years of silence!! So I better have some thing to say right?. You bet. Acctually this should have posted a year ago, but I’m so lazy. I’ve been researching almost silently in the area of sorting algorithms. I have come up with a modification to the very popular Quicksort algorithm, which I call “Triple State Quicksort”. The new algorithm reduces the number of swaps to about two thirds (2/3) of classical Quicksort. A multitude of other improvements are implemented. Test results against the std::sort() function shows an average of 43% improvement in speed throughout various input array types. It does this by trading space for performance at the price of n/2 temporary extra spaces. The extra space is allocated automatically and efficiently in a way that reduces memory fragmentation and optimizes performance.

Details are in my paper, in Cornell University Library here:
Or you can check also my post a Microsoft forums here
You can also find the full working code of the algorithm here:

Again this a bit old news now. Currently I’m working on something totally different. I’m into DSP, something will come out soon!!

Ahh, at last some time and motive to blog some thing here. It’s been more than a year since my last post. Allot of things happened. One thing, is that I became lately interested in sound design and music. Infact, I’m so interested now that I’ve built my own home studio at home!!. And No, I did not quit on research, or networking. Just having some fun :). So Here is a clip of what I was playing:

DiskSims 1.2

DiskSims 1.2 Beta released. New features include:
– SLOOK algorithm. Described in our paper: “S-LOOK: A Preemptive Disk Scheduling Algorithm for Offline and Online Environments”
– Ability to get the Average, Minimum and Maximum of multiple similation results (when using range parameters) and plot them in one chart.
– Ability to calculate Maximum waiting times.
– Variaus enhancements of Manual Request Entry, Including support for LBA (Logical Block Addressing) and easy to use time delays (t option).
– Saving custom disk types in Disk Propeties.
– Number of hard disc heads is included now with the simulation parameters.
– Many other changes and bug fixes

CSIT 2009

csit2009_buttonWell this is a little too late, but finally having time to log it. I’ve been in Ukraine two months ago attending the CSIT2009 (Computer Science and Information Technologies 2009) conference. I Presented my new paper describing “SLOOK” a new disk scheduling algorithm. Working with Dr. Hanady Abdulsalam and Dr. Ayed Salman. I’ve also implemented SLOOK into Disksims, so I might release a new version soon. The algorithm proved to be effective in minimizing disk head seek time. Full paper here. It’s a nice country by the way!! member!

I’ve been invited to join the wonderful team. gathers a huge community of networking professionals. Offering expert advice via their forums and valuable networking information in other sections as well. Among several services, offers the “World’s First Free Online Cisco Lab” using REAL cisco equipment. The site is recommended by the Cisco Networking Academy and has received several recognitions from other prestigious parties as well. So now I’m part of the team, moderating forums as S0lo !!

DiskSims 1.1 Beta

DiskSims Beta v1.1 released. New features include:

– Added Rotational latency support. The simulation is more realistic now accounting for spin time. This feature can be optionally turned ON or OFF by the defining or un-defining the RLATENCY directive in the code.
– Manual request entry supports rotational latency by allowing request block numbers to be entered in addition to cylinder numbers.
– Ability to use multiple simulator versions (builds). For example, you can compile the (schedule) simulator engine with your own modified version of the SSTF algorithm and compare the results with the original SSTF version. DiskSims displays the list of executable simulators that you can use.
– Few other minor fixes

Hegons v0.3 Beta

Hegons Beta version 0.4 released.

– Optionally, Converter nodes can now try the same chosen channel from the previous node before doing conversion. In other words, the converter node will first act as a non-converter node, if the channel fails only then it will do conversion. You can use this option simply by #defining TRY_PREV_CHANNEL directive in the code. The purpose of this feature is to try to reduce the blocking probability by trying to maintain the same wavelengths chosen along light paths. Unfortunately, it doesn’t always seam to do very well. However, In later versions I might introduce a conversions counter (so you can know how many conversions are being done) and converter limits. In real networks, converter nodes might have a limit on the number of conversions that can be done simultaneously. The new feature can help in reducing the number of simultaneous conversions that are being done.

1 2 3