Compare commits

..

No commits in common. "833dd6b20cadf9e4197dbebbbd07e92b43ecc179" and "8449734941c3e25f577febfbd211514b7f32e98f" have entirely different histories.

View File

@ -31,8 +31,8 @@ unsigned int *createNumbers(unsigned int len)
TreeNode *numbers; TreeNode *numbers;
int isDuplicate = 0; int isDuplicate = 0;
unsigned int number = rand() % (2 * len) + 1; int number = rand() % (2 * len) + 1;
unsigned int *array = malloc(len * sizeof(int)); int* array = malloc(len*sizeof(int));
numbers = addToTree(NULL, &number, sizeof(int), compareFct, &isDuplicate); numbers = addToTree(NULL, &number, sizeof(int), compareFct, &isDuplicate);
array[0] = number; array[0] = number;
@ -44,20 +44,15 @@ unsigned int *createNumbers(unsigned int len)
{ {
isDuplicate = 0; isDuplicate = 0;
i--; i--;
} }else{
else
{
array[i] = number; array[i] = number;
} }
} }
clearTree(numbers);
int duplicatePosition1 = rand() % len; int duplicatePosition1 = rand() % len;
int duplicatePosition2 = rand() % len; int duplicatePosition2 = rand() % len;
while (duplicatePosition2 == duplicatePosition1) while(duplicatePosition2 == duplicatePosition1){
{
duplicatePosition2 = rand() % len; duplicatePosition2 = rand() % len;
} }
@ -69,19 +64,11 @@ unsigned int *createNumbers(unsigned int len)
// Returns only the only number in numbers which is present twice. Returns zero on errors. // Returns only the only number in numbers which is present twice. Returns zero on errors.
unsigned int getDuplicate(const unsigned int numbers[], unsigned int len) unsigned int getDuplicate(const unsigned int numbers[], unsigned int len)
{ {
unsigned int *copyNumbers = malloc(sizeof(int) * len); qsort(numbers, len, sizeof(int), compareFct);
for (int i = 0; i < len; i++)
{
copyNumbers[i] = numbers [i];
}
qsort(copyNumbers, len, sizeof(int), compareFct); for(int i = 0; i < len-1; i++){
if(numbers[i] == numbers[i+1]){
for (int i = 0; i < len - 1; i++) return numbers[i];
{
if (copyNumbers[i] == copyNumbers[i + 1])
{
return copyNumbers[i];
} }
} }