Fast sorting (C #)
CodeImplementation:
Public static void quicksort (INT [] A, int startindex, int endindex) <br/>{< br/> If (startindex> endindex) <br/> return; </P> <p> int keyindex = partion (A, startindex, endindex); <br/> quicksort (A, startindex, keyindex-1 ); <br/> quicksort (A, keyindex + 1, endindex); <br/>}</P> <p> Public static int partion (INT [] A, int startindex, int endindex) <br/>{< br/> int temp = 0; <br/> int leftmaxindex = startindex-1; <br/> int key = A [endindex]; </P> <p> for (INT rightmaxindex = startindex; rightmaxindex <endindex; rightmaxindex ++) <br/>{< br/> if (a [rightmaxindex] <= key) <br/> {<br/> // leave the key less than or equal to on the left <br/> temp = A [leftmaxindex + 1]; <br/> A [leftmaxindex + 1] = A [rightmaxindex]; <br/> A [rightmaxindex] = temp; </P> <p> leftmaxindex ++; <br/>}</P> <p> // exchange pacet <br/> temp = A [leftmaxindex + 1]; <br/> A [leftmaxindex + 1] = A [endindex]; <br/> A [endindex] = temp; </P> <p> return leftmaxindex + 1; <br/>}