Un array viene fornito in modo che il valore del suo elemento aumenti da 0th index ad alcuni (k -1) indice. A k il valore è minimo, e poi inizia ad aumentare nuovamente attraverso l'elemento n. Trova l'elemento minimo.Trova l'elemento minimo in un array, che ha un modello
In sostanza, la sua lista ordinata si aggiungeva a un'altra; esempio: (1, 2, 3, 4, , 1, 2, 3).
Ho provato tutti i tipi di algoritmi come il cumulare di min-heap, la selezione rapida o il semplice attraversamento. Ma non posso farlo sotto O (n). Ma c'è un modello in questo array, qualcosa che suggerisce che un tipo di ricerca binaria dovrebbe essere possibile, e la complessità dovrebbe essere qualcosa come O (log n), ma non riesco a trovare nulla. Pensieri ??
Grazie
Vuoi dire ** diminuisce ** da 0 a K? –
No potrebbe diminuire da k a qualsiasi valore, meno di k e quindi ricominciare ad aumentare. È come se avessimo posizionato due array ordinati uno dopo l'altro in un elenco e abbiamo bisogno di trovare il punto di unione. –
Ho modificato la domanda per, si spera, chiarire, considerando che ho frainteso (e apparentemente non era l'unico). @JimMischel ottiene credito per la chiara spiegazione. – derobert