Purtroppo è completamente sbagliato.
La ricorsione è composta da uno o più casi base + un caso ricorsivo.
Nel tuo caso se i è uguale ad a.length - 1 significa che sei giunto al caso base (o l'array ha un solo elemento, oppure sei giunto alla fine della ricorsione di coda)... perchè ritorni false?
Il caso ricorsivo (che tra l'altro è sintatticamente errato e quel codice non compila proprio) lo stai trattando praticamente al contrario: prima fai la chiamata ricorsiva, poi nel caso in cui a (senza indice??) sia minore del successivo sovrascrivi il risultato della chiamata ricorsiva con true fregandotene del risultato precedente...
Per quanto riguarda il main, dovrai dichiarare una variabile booleana e assegnargli il valore della prima chiamata al metodo, passando a questo un array e l'indice 0. Quindi stampare il valore della variabile booleana (che conterrà il risultato dell'elaborazione) e verificare che sia ciò che ti aspetti (oppure usi un asserzione, se le hai già trattate).