All pastes #963549 Raw Edit

Binary array sort

public text v1 · immutable
#963549 ·published 2008-03-30 17:27 UTC
rendered paste body
void sortArray(char *array, int length)
{
	int left=0, right=0, i;

	for(i=0; i<length; i++)
	{
		if((left + right) >= (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;
}