1)2) basta che peschi sempre i minimi (i massimi) dagli array e li confronti. Quando finisci gli elementi di uno gli elementi dell'altro saranno tutti maggiori o tuttalpiù uguali all'ultimo elemento inserito.
3)4) sono prettamente teoriche, pensaci tu dopo l'implementazione.