Sto provando a fare un algoritmo che prende due array, S e T di n interi e interi k. L'algoritmo controlla se gli array hanno interi s e t so s + t = k. (S in S e t in T.) L'algoritmo dovrebbe avere il tempo di esecuzione di O (n log n).Algoritmo che controlla se negli array S e T sono interi s e t so s + t = k se k è dato numero
Ho tentato di pensare a qualcosa che ordinasse l'array T e usassi il ciclo per passare a S e usassi la ricerca binaria per vedere se trovo intero come k-S [i] per ogni elemento in S. Ma questo avrà sempre tempo di esecuzione maggiore di n log n, penso.
Non cercare qualcuno che scriva il codice. Solo chiedendo qui per avere qualche idea.
Grazie a tutti per le buone risposte. – krunarsson
Se gli interi in S e T sono limitati in un intervallo di dimensione m, si può escogitare un algoritmo O (n) con complessità spaziale O (m). – danr