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

 
Алексей Тарабанов:

Ne vous moquez pas des gens

Je n'ai même pas commencé ;-)

Je n'ai même pas mentionné le "checksum" lorsqu'il y a un benchmark.

On peut se souvenir de l'asymptotique, par laquelle la vitesse est finalement estimée.
Et que cela dépend de la quantité de données d'entrée, du nombre d'éléments à supprimer et de leur emplacement/répartition (qui, en réalité, n'est JAMAIS uniforme).

et que les graphiques peuvent/doivent être tracés.

l'objectif ne vaut certainement pas la peine d'être atteint, mais d'une manière ou d'une autre, la méthodologie doit être suivie.

Je pourrais continuer pendant encore deux ou trois pages :-)

 

Ajout d'une option de rotation, de pause et d'échauffement (la première passe n'est pas comptabilisée).

Dossiers :
 
Stanislav Dray:

J'ai ajouté une variante avec rotation, pauses et échauffement (la première passe n'est pas prise en compte).

C'est étrange que de nombreux exemples ne puissent pas fonctionner correctement avec des structures... Peut-être que je ne comprends pas quelque chose...

 
Vladimir Pastushak:

C'est étrange que de nombreux exemples ne puissent pas fonctionner correctement avec des structures... Peut-être que je ne comprends pas quelque chose...

Se débarrasser des structures au profit des classes. Il est plus facile de travailler avec eux dans MQL.

 
Vladimir Pastushak:

C'est étrange que de nombreux exemples ne puissent pas fonctionner correctement avec des structures... Peut-être que je ne comprends pas...

Qu'est-ce que tu veux dire ? Je ne sais pas ce que vous voulez dire. Quels exemples ne fonctionnent pas bien ? Tout fonctionne.

1

 
Vladimir Pastushak:

C'est étrange que de nombreux exemples ne puissent pas fonctionner correctement avec des structures... Peut-être que je ne comprends pas quelque chose...

Les fonctions ne savent pas quel champ de la structure doit être comparé.

 
Dmitry Fedoseev:

La fonction ne sait pas quel champ de la structure doit être comparé.

La fonction est comparée par champs. Le résultat est la suppression du dernier élément du tableau pour une raison quelconque.

 
J'ai compris, c'était le champ qui se déplaçait dans la corde, pas la structure entière...
 
Nikolai Semko:

Étudiez le code.

J'ai vérifié votre code. Tu as fait tout ce qu'il fallait.

Je ne comprends pas pourquoi cette ligne prend la part du lion de mon temps :

//+------------------------------------------------------------------+
int PeterArray(int &Arr[],const int val) // вариант Peter Konow
  {
   int deleted=0,q=0;
   for(int a1=0; a1<ArraySize(Arr); a1++)
     {
      if(deleted)Arr[q]=Arr[q+deleted];
      if(Arr[q]==val){deleted++; q--;} <-----------Выполнение этих операций занимает кучу времени.
      q++;
     }
   ArrayResize(Arr,q);
   return (q);
  }
//+------------------------------------------------------------------+

Sans cette ligne, le code s'exécute en 2 microsecondes. Mais vous ne pouvez pas le faire sans elle.

Ce n'est peut-être pas la solution la plus rapide, mais c'est l'une des plus concises.


SZY. Vous avez fait une erreur en écrivant la fonction par ma solution :

Ma fonction n'est pas

ArrayResize(Arr,q);

а

ArrayResize(Arr,ArraySize(Arr) - deleted);

Mais merci quand même.

 
Vladimir Pastushak:

La fonction est de comparer les champs. Le résultat est que, pour une raison quelconque, le dernier élément du tableau est supprimé.

Lorsqu'on assigne un élément à un autre, c'est-à-dire lorsqu'on utilise le signe "=" ?

J'ai remarqué que c'est mieux de faire ses propres copies. Vous ne pouvez compter sur rien.

Raison: