maj éléments dans le tableau
C'est élémentaire, mais mes recherches sur google ne suffit pas. Je sais que je dois faire autre chose pour décaler les valeurs d'un tableau un par un, mais le dessous de codage me donne les mêmes valeurs pour les éléments de[k] pour les éléments de[infinity] tout en égalant les éléments de[k]. Ce que je ne comprends pas, c'est comment préserver l'original k+1 de la valeur alors que je copie la valeur de k à k+1 slot.
if ( i < numItems) //if i is inside the used boundaries of the array
{
for (int k = i; k < numItems; k++) //shift the array values from point i
{
double temp = 0.0;
temp = items[k];
items[k+1] = temp;
}
items[i] = value; //and insert value into i
}
T-elle a être une méthode récursive?
OriginalL'auteur Sukwoo | 2012-09-28
Vous devez vous connecter pour publier un commentaire.
Une option facile serait de parcourir le tableau en sens inverse
Option 2:
Si vous voulez garder votre méthode intacte alors vous pouvez aussi utiliser la variable temp différemment
avant votre boucle pour initialiser temp
et puis dans la boucle, vous pouvez utiliser temp pour stocker le [k+1] la valeur temp plutôt que de stocker le [k] de la valeur.
en outre, vous devriez regarder vos limites, de sorte que k+1 n'est pas d'aller au-delà du dernier élément du tableau. Vous pouvez utiliser quelque chose comme numItems - 1 avec un chèque avant de, pour s'assurer que le tableau n'est pas vide.
OriginalL'auteur Jasmeet Oberai
Vous pouvez tout aussi bien utiliser memmove, qui gère le chevauchement des régions.
memmove
, vous devez définiritems[0] = value;
Vous avez raison, et j'ai aussi corrigé la réponse à réfléchir à la question (à insérer à la k-ème position).
Je me demande si memmove est plus rapide que pour le cycle
Vous pouvez trouver une belle discussion sur cette question ici: stackoverflow.com/questions/7776085/...
OriginalL'auteur Teudimundo
Pouvez-vous essayer d'inversion de la méthode
c'est un exemple.
OriginalL'auteur vsmph
OriginalL'auteur ENG Abanoub Ashraf