fix dublicate was at the end at all time
This commit is contained in:
parent
42243120eb
commit
e4a7f9ac28
@ -11,14 +11,22 @@
|
||||
* Duplizieren eines zufälligen Eintrags im Array.
|
||||
* 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.
|
||||
// Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while
|
||||
// creating random numbers.
|
||||
static void dublicateRandomEntry (unsigned int *numbers, unsigned int len)
|
||||
{
|
||||
unsigned int dubIndx = rand() % len;
|
||||
unsigned int copyIndx = rand() % len;
|
||||
|
||||
numbers[copyIndx] = numbers[dubIndx];
|
||||
}
|
||||
|
||||
static int compare(const void *a, const void *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)
|
||||
{
|
||||
if (len < 2)
|
||||
@ -48,8 +56,7 @@ unsigned int *createNumbers(unsigned int len)
|
||||
}
|
||||
|
||||
// Duplicate one random entry
|
||||
unsigned int dupIndex = rand() % (len - 1);
|
||||
numbers[len - 1] = numbers[dupIndex];
|
||||
dublicateRandomEntry(numbers, len);
|
||||
|
||||
clearTree(root); //Notwendigkeit muss noch restlichem Code entnommen werden
|
||||
return numbers;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user