Scusate per un selection sort pensavo a questo algoritmo:
Ho sempre dubbi sui passi base e sulla complessità nel caso peggiore, medio e migliore?
Mi potete aiutare?
Grazie a tutti.
ps
Ho provato mi verrebbe:
1+ n +(n-1)[1+1+n*(n-1) (1+1+1+1+1+1+1)
esattamente
i=0 1
i<9 n
i++ n-1
min=i 1
j=i+1 1
j<10 n
j++ n-1
if (a[j]<a[min]) (n-1)
min=j; (n-1)
}
temp = a[min]; (n-1)
a[min] = a; (n-1)
a = temp; (n-1)
}
Codice:
#include<iostream>
using namespace std;
main()
{
int a[10]={5,8,0,1,4,2,4,3,9,7};
int i,j,min,temp;
for(i=0; i<9; i++)
{
min=i;
for (j=i+1;j<10;j++)
{ if (a[j]<a[min])
min=j;
}
temp = a[min];
a[min] = a[i];
a[i] = temp;
}
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
}
Ho sempre dubbi sui passi base e sulla complessità nel caso peggiore, medio e migliore?
| Ω (migliore) | θ(medio) | O (peggiore) |
Mi potete aiutare?
Grazie a tutti.
ps
Ho provato mi verrebbe:
1+ n +(n-1)[1+1+n*(n-1) (1+1+1+1+1+1+1)
esattamente
i=0 1
i<9 n
i++ n-1
min=i 1
j=i+1 1
j<10 n
j++ n-1
if (a[j]<a[min]) (n-1)
min=j; (n-1)
}
temp = a[min]; (n-1)
a[min] = a; (n-1)
a = temp; (n-1)
}
Ultima modifica: