Uno dei problemi in questa descrizione e' l'utilizzo di termini non precisi.
Ad esempio: bubblesort non e' una funzione, ma un algoritmo di ordinamento, che puo' essere implementato in vari modi, tra cui anche come una funzione.
Ma qui il termine funzione vuol dire una cosa ben precisa.
Altro esempio: non si capisce che cosa vuol dire funzione creata in questo modo non venga accettata. Accettata da chi? E per quale motivo?
Dalla descrizione sommaria, tu hai implementato l'algoritmo di ordinamento bubblesort in modo ricorsivo.
L'implementazione e' perfettamente valida, benche' presenti diversi problemi.
Quali sono questi problemi?
Puoi scoprirlo da te:
inizia con un vettore ordinato al contrario (che rappresenta il caso peggiore per ogni algoritmo di ordinamento), di 10, 100, 1000, 10.000, 100.000 ... elementi, e tieni traccia del tempo di esecuzione. Ne vedrai delle belle
Ma per prima cosa, fondamentale: come funziona il bubblesort?
Non serve scrivere una funzione per capire come funziona: basta anche carta, penna e calamaio