Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
void heapify(){
for(int j=lastIndex/2; j>0; j--) moveDown(j);
T(n)= 2T(n/2)+logn = (n)
static void heapsort(int[] a){
int n = a.length;
for(int j=(n-2)/2; j0; j--)
moveDown(a, j, n); /a max/
for(int i=n-1; i>0; i--){
swap(a, 0, i); moveDown(a, 0, i); } }
private HashMap<Object, Integer> position;
position = new HashMap<Object, Integer>;
position.get(Object o);
position.put(Object o, Integer key);
.
Double.POSITIVE_INFINITY;
.
.
|
void breadthF(Graph G){
for each(Nodo u: G){ padre[u]= -1;
visitato[u]=false; /dist[u]= ;
/ padre[u]=u; dist[s]=0;
x} Q = codaVuota(); /priority
for each(Nodo u: G) /q.add(u, dist[u])
x if(not visitato[u]) breadthF(G, u);}
x void breadthF(Graph G, Nodo s){ /
x visitato[s]=true; accoda s in Q; /
x while(Q non vuota){
x Nodo u= Q.getFirst();
for each(Nodo v adj a u)
if(not visitato[v]){ /dist[u]+cuv<dist[v]){
padre[v] = u;
visitato[v]=true; /dist[v]=dist[u]+c uv;
x
Q.add(v); /decreasePriority(v, dist[v],Q);
}}}}
Prob. Comput.trattabile: se E un algo. efficie.
che lo risolve
Efficiente: se il suo T desecuzione limitato
superiormente da una funzione polinomiale
Algo Ottimo: se la sua compless. coincide con il
limite inferiore della compl. del problema. Se
lim. sup. e inf. coincidono: Alg.mic. chiuso
.
.
.
.
.
|
Code prior.: [Ins Estr 1] lis o/no, arr o/no, heap
Albero d-ario: foglie=dh nodi=(dh+1-1)/(d-1)
Dizionario: liste o/no, array o/no, albero avl
(bst 1-bil.) [Ricer Insert Cancel]
(SSa(T1cT2))bD DD>((_SSaT1_)cT2)bD
-SS>(SSaT1)c(T2bD) rotaz. SD
Master: T(1)=1 T(n)= aT(n/b) + c*n^s
a<b^s=>T=(n^s) a>b^s=>T=(n^logb_a)
a=b^s=> T(n) = (n^s logb_n)
.