void sortArray(char *array, int length) { int left=0, right=0, i; for(i=0; i= (length-1)) { // using break, best case senario O(n>>1), worst case O(n) // break; // use for potentially faster sort time continue; // use for O(n) sort time } if(array[left] == 0) { if(array[length-1-right] == 0) left++; else right++; } else { if(array[length-1-right] == 1) right++; else { array[left] ^= array[length-1-right]; array[length-1-right] ^= array[left]; array[left] ^= array[length-1-right]; left++; right++; } } } return; }