Salve, sono alle prese con questo esame e ho qualche difficoltà nel calcolo dei costi computazionali degli algoritmi.
Si considerino i seguenti metodi:
codice:
public static int metodo3(int n) {
return metodo2(metodo1(n));
}
public static int metodo2(int[] a) {
for (int i=0; i<=a.length / 2; i++) {
for (int j=i; j<a.length; j++) {
if (a[j] < a[i]) {
int aux = a[j];
a[j] = a[i];
a[i] = aux;
}
}
}
return a[a.length/2];
}
public static int[] metodo1(int n) {
LinkedList<Integer> in = new LinkedList<Integer>();
while (n>0) {
in.add(n % 10); //resto della divisione intera
n = n / 10;
}
Iterator<Integer> iterator = in.iterator();
int i = 0;
int[] val = new int[in.size()];
while (iterator.hasNext()) {
val[in.size() - i - 1] = iterator.next();
i++;
}
return val;
}
Si richiede quanto segue:
1. Determinare il costo computazionale di metodo1 in funzione del valore n e in funzione della dimensione dell'input.
2. Determinare il costo computazionale di metodo2 in funzione del valore n e in funzione della dimensione dell'input.
3. Determinare il costo computazionale di metodo3 in funzione del valore n e in funzione della dimensione dell'input.
Qualcuno saprebbe aiutarmi? Grazie mille