fix dublicate was at the end at all time
This commit is contained in:
parent
7780bddc53
commit
52e83f52a2
@ -11,14 +11,22 @@
|
|||||||
* Duplizieren eines zufälligen Eintrags im Array.
|
* Duplizieren eines zufälligen Eintrags im Array.
|
||||||
* in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */
|
* in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */
|
||||||
|
|
||||||
// Returns len random numbers between 1 and 2x len in random order which are all different, except for two entries.
|
static void dublicateRandomEntry (unsigned int *numbers, unsigned int len)
|
||||||
// Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while
|
{
|
||||||
// creating random numbers.
|
unsigned int dubIndx = rand() % len;
|
||||||
|
unsigned int copyIndx = rand() % len;
|
||||||
|
|
||||||
|
numbers[copyIndx] = numbers[dubIndx];
|
||||||
|
}
|
||||||
|
|
||||||
static int compare(const void *a, const void *b)
|
static int compare(const void *a, const void *b)
|
||||||
{
|
{
|
||||||
return (*(int *)a > *(int *)b) - (*(int *)a < *(int *)b);
|
return (*(int *)a > *(int *)b) - (*(int *)a < *(int *)b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Returns len random numbers between 1 and 2x len in random order which are all different, except for two entries.
|
||||||
|
// Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while
|
||||||
|
// creating random numbers
|
||||||
unsigned int *createNumbers(unsigned int len)
|
unsigned int *createNumbers(unsigned int len)
|
||||||
{
|
{
|
||||||
if (len < 2)
|
if (len < 2)
|
||||||
@ -48,8 +56,7 @@ unsigned int *createNumbers(unsigned int len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Duplicate one random entry
|
// Duplicate one random entry
|
||||||
unsigned int dupIndex = rand() % (len - 1);
|
dublicateRandomEntry(numbers, len);
|
||||||
numbers[len - 1] = numbers[dupIndex];
|
|
||||||
|
|
||||||
clearTree(root); //Notwendigkeit muss noch restlichem Code entnommen werden
|
clearTree(root); //Notwendigkeit muss noch restlichem Code entnommen werden
|
||||||
return numbers;
|
return numbers;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user