Effacement d'un tableau d'élément(s) défini(s) - page 14

 
Dmitry Fedoseev:

C'est un jardin d'enfants.

De votre côté, donc exactement. Essayez de traiter le même code avec des paramètres doubles (vous pouvez tout normaliser).

Peut-être que dans le processus, vous comprendrez ce que je veux dire.

 
Stanislav Dray:

De votre côté, donc exactement. Essayez de traiter le même code avec des paramètres doubles (vous pouvez tout normaliser).

Peut-être que dans le processus, vous comprendrez ce dont je parlais.

Non, je peux vous assurer, de manière responsable, que vous ne comprenez pas quelque chose ici.

 
Dmitry Fedoseev:

Non, je peux vous assurer, de manière responsable, qu'il y a quelque chose que vous ne comprenez pas ici.

Eh bien, bonne chance pour normaliser les tableaux :)

 
Stanislav Dray:

Eh bien, bonne chance pour la normalisation des tableaux :)

Avec cette approche, c'est vous qui devez espérer avoir de la chance.

 

Vous faites vraiment des conneries. Le coût de la filtration est de c*O (n). Où c est une constante pour les extras. C'est misérable. Comme vous ne pouvez pas améliorer O(n), vous avez décidé d'utiliser c. Pourquoi ? C'est insignifiant. Toute optimisation que vous ferez n'améliorera qu'une partie de cette correction négligeable.

Vous feriez mieux de vérifier si tous les algorithmes soumis ont vraiment O(n). Aucun d'entre eux n'a été testé.

 
Vasiliy Sokolov:

C'est négligeable. Toute optimisation que vous ferez n'améliorera qu'une fraction de cette correction négligeable.

Eh bien hz, Semko a prouvé le contraire - il a amélioré l'algorithme de recherche standard par plus de deux( !) fois.

Étonnamment, c'est une bonne branche.

 
TheXpert:

Eh bien, je ne sais pas, mais Semko a prouvé le contraire - il a amélioré l'algorithme de recherche standard par plus de deux( !) fois.

La branche s'est avérée étonnamment bonne

Il s'avère que la copie par blocs pour les "grandes" séquences est plus rapide malgré tous les frais généraux de l'implémentation interne d'ArrayCopy.
Je me demande s'il existe un moyen d'utiliser l'"exécution spéculative" pour accélérer explicitement l'algorithme, ou si le résultat est déjà complètement affecté ?

 

Sergey Dzyublik , sans vouloir vous offenser, juste pour information. J'ai téléchargé votre dossier et je me suis sentie obligée de voir ma fonction. Vous n'avez pas besoin de contrôles inutiles.
C'était :

template<typename T>
int arrayFilter2(T &data[],const T value) // вариан Nikitin
  {
   int d=ArraySize(data),j=0,y=0;

   for(int i=0; i<d; i++,y++)
     {
      bool res=false;
      if(data[i]==value)// || data[i]==NULL)
        {
         res=true;
         j++;
        }

      if(j>0)
        {
         if(d==y+j)
            break;
         data[y]=data[y+j];
        }
      if(res)
         y--;
     }

   if(d>y)
      ArrayResize(data,y);

   return y;
  }

Devenu :

template<typename T>
int arrayFilter2(T &data[],const T value=NULL)
  {
     int s, _s = s = ArraySize(data);
     bool res = false;
     
     for(int i=0, j=0; i<_s; i++,j++)
     {
          if( data[i] == value)// || data[i]==NULL)
          {
               res = true;
               s--;
               j--;
               continue;
          }
          if( res )
               data[j] = data[i];
     }
     
     if(s < _s)
          ArrayResize(data, s);
     
     return s;
  }
Dossiers :
 
Konstantin Nikitin:

Sergey Dzyublik , sans vouloir vous offenser, juste pour information. J'ai téléchargé votre dossier et je me suis sentie obligée de voir ma fonction. Pas besoin de contrôles inutiles.
J'avais :

Devenu :

Pourquoi tu t'es arrangé et m'as jeté dehors ? C'est pas bon.

 
Konstantin Nikitin:

Sergey Dzyublik , sans vouloir vous offenser, juste pour information.
J'ai téléchargé votre dossier et je me suis sentie obligée de voir ma fonction.

Le dernier fichier disponible a été utilisé, aucune modification n'a été apportée au code à partir des commentaires.

Raison: