L'insertion d'un nombre aléatoire dans un tableau avec l'ordre de tri en C++
Bonjour, je suis en train de faire un tableau qui insère un nombre aléatoire, mais quand il le fait, le tableau reste dans le maintien de l'ordre. Par exemple, si le tableau contenu 10 20 30 et le nombre aléatoire est 11 la fonction serait de le mettre au bout de 10 et de déplacer 20 et 30 en bas de la liste. Voici les exigences de la fonction.
- insertNumber insère un nombre aléatoire dans la matrice et maintient l'ordre.
- Le tableau de données contenant des entiers dans l'ordre de tri à partir de l'index de 0 à taille - 2.
- randomNum est le nombre entier d'être inséré
- de données est le tableau contenant triés entiers
- la taille est le nombre total d'éléments de la matrice peut contenir
Voici mon code jusqu'à présent. Je reçois rien dans ma sortie.
#include"utils.h"
void insertNumber(int randomNum, int data[], int size)
{
for(int i = 0; i < 10; i++)
{
randomNum = data[i];
if (randomNum > data[i] && i < size - 2)
{
for ( int j = 0; j < 10; j--)
{
data[i+1] = data [i];
i--;
}
}
data[i] = randomNum;
}
}
void display(int data[], int size)
{
for (int i = 0; size < 10; i++)
{
cout << " " << data[i];
}
}
- Avez-vous besoin d'un tableau, ou pourriez-vous aussi l'utilisation d'un ordre conteneur?
- la ligne 5 est complètement faux. Si la condition n'est jamais rencontré, et à cet effet, vous tableau sera toujours le même.
- Peut-être une faute de frappe, mais la taille "< 10"? Je pense qu'il devrait être i < taille
- Je dois utiliser un tableau.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
std::lower_bound
algorithme d'avoir une position d'insertion, et unestd::vector
conteneur de déplacer les éléments avec lainsert
méthodeVous pouvez utiliser BinarySearch à la recherche de votre tableau et voir si le nombre aléatoire existe. S'il n'existe pas que vous pouvez insérer à proximité de l'existant.
Ne serait-ce pas une meilleure façon de la mettre en œuvre?
De sortie:
3 6 9 13 14 16 19 20 25 30
Insérez votre numéro aléatoire lorsque vous avez trouvé l'élément de plus grande qu'elle, à l'intérieur de votre fonction