insérer dans le tableau trié

Je veux insérer un élément dans le bon endroit que l'ordre maintient dans la liste triée.
J'ai attribué 2*n la taille de la matrice et rempli le reste avec 999, car ils ne sont pas utilisés actuellement.

ordered_insert(int number,int array[],int size){
 int i=0;
 int temp1,temp2,index;
 while(eleman>array[i]){
   i++;}

//push the rest to right by one
index=i;

if(i<size){
    temp1=array[i];
    temp2= array[i+1];
    array[i+1]=temp1;
    array[i+2]=temp2;
    i++;
    }

array[index]=number;

}

Je ne pouvais pas comprendre comment le remplacer 999s ou est-il une meilleure façon de faire à la place?

  • L'utilisation de la boucle de maj reste du tableau (ou memmove si ce n'est pas une école d'affectation).
  • Il y a une question similaire, here mais je ne trouve pas les réponses très satisfaisantes. Google recherche binaire position d'insertion pour trouver de meilleurs résultats, y compris rosettacode.org/wiki/Binary_search
  • En fonction de votre utilisation (par exemple, nombre d'insertions), ce type d'opération serait mieux adapté d'une liste liée au lieu d'un tableau.
InformationsquelleAutor Ege | 2013-11-26