Cancellare un array di elementi definiti - pagina 25

 
Sergey Dzyublik:

Io userei la struttura dati HashSet per i valori.
La complessità sarebbe: O(n) + O(m)

Per la ricerca binaria proposta, la complessità sarebbe: O(n log(m))


Che libreria usi per gli insiemi di hash? Quelli che ho visto per MQL sono più lenti della ricerca binaria ...

 

Ho cambiato i parametri del test (per il nuovo compito) per riflettere un rapporto di 2: 1 tra numeri unici e filtri unici.
File:
 

Modifiche minori.

P.S. leggermente corretto

File:
 

Aprire il progetto ArrayDeleteValue.
Divertiamoci ancora un po'

P.S. Tutte le funzioni sono distribuite in file. È più facile modificare ciascuno di essi

 

Vorrei ringraziare sinceramente tutti dal profondo del mio cuore, in 10 anni non ho visto un thread più produttivo su questo forum!
Grazie mille a tutti per la vostra attenzione, per i vostri esempi concreti, per la vostra comunicazione costruttiva!
Secondo me questo thread può essere un esempio di come comunicare e aiutarsi a vicenda!
Grazie mille ancora!

👍👍👍👍👍👍👍👍

 

Non volevo offendere nessuno e ho cancellato il post in cui rispondevo agli attacchi sul mio algoritmo, ma ho pensato che dovrebbe essere chiarito per i programmatori perché ha un checksum sbagliato e qual è la sua differenza dagli altri - semplicemente mantiene non solo l'ordine degli elementi nell'array ma le loro posizioni, ovviamente, tranne quelli cancellati.


Insomma, chi ha scritto il codice capirà se è utile o no, mentre i proffesori non si offendano, ma il sito non è per voi... :)

Очистка массива от заданного (ых) элементов
Очистка массива от заданного (ых) элементов
  • 2018.11.16
  • www.mql5.com
Есть массив содержащий набор данных по типу 1,2,3,6,9,5,6,3,25,6,8,7,4 нужно удалить например значения 3 и на выходе получить тот же массив без 3 и...
 
Ivan Negreshniy:

Non volevo offendere nessuno e ho cancellato il post in cui rispondevo agli attacchi sul mio algoritmo, ma ho pensato che dovrebbe essere chiarito per i programmatori perché ha un checksum sbagliato e qual è la sua differenza dagli altri - semplicemente mantiene non solo l'ordine degli elementi nell'array ma anche le loro posizioni, ovviamente, tranne quelli cancellati.


Insomma, chi ha scritto il codice capirà se è utile o no, mentre i proffesori non si offendano, ma il sito non è per voi... :)

Ho accennato da qualche parte sopra che non ha senso avere un checksum. Ci sono dati in arrivo, c'è un risultato di riferimento.
È necessario confrontare i risultati dei passaggi con il riferimento disponibile e sicuro. Non c'è bisogno di confrontare due array O(n), l'unico vantaggio è quello di ottenere un risultato approssimativo il più presto possibile. Lo sperimentatore un po' prima (di un paio di secondi/minuti)
setaccia esattamente i risultati sbagliati.

 
Konstantin Nikitin:

Progetto aperto ArrayDeleteValue.
Divertiamoci ancora un po'

P.S. Tutte le funzioni sono distribuite su file. È più facile correggere ciascuno di essi.

macchine diverse hanno risultati diversi, che variano di quasi un fattore due, quindi non è nemmeno chiaro se ha senso.

Ivan Negreshniy:

In breve, coloro che hanno scritto il codice capiranno, è utile o errore, e i professori non si offendono, ma questo sito non è per voi... :)

Ti sbagli, ma probabilmente dovresti leggere il thread prima di entrarci.

 
Ivan Negreshniy:

...

Sì, ma altrimenti bella marchesa, tutto va bene, tutto va bene...

 
Stanislav Dray:

macchine diverse hanno risultati diversi, che variano di quasi un fattore due, quindi non è nemmeno chiaro se ha senso.

ti sbagli, ma per capirlo probabilmente hai bisogno di leggere il thread prima di entrarci "dal piede"

se il modo corretto è confrontare due algoritmi sulla stessa cosa, allora

- i grafici sono fatti. Se al cambiamento delle condizioni (volume di una matrice per esempio) alg. A disegnato in verde batte chiaramente B disegnato in blu, possiamo concludere che alg.A è "più veloce".

- Noterete anche che la velocità dipende non solo dalla dimensione iniziale dell'array, ma anche dal numero di elementi da cancellare e persino dalla loro posizione.

- cioè i grafici sono almeno bidimensionali (cioè le superfici) ed è necessario guardare i casi limite

così com'è :-)