paradise92
Registrado: 30 May 2011 Mensajes: 8
| Publicado: 07/10/2011 12:39 am | | | Título: complejidad de este algoritmo,sencillo |
| hola,alguien me puede ehcar una mano con la complejidad de este algoritmo,a mi me sale O(n^2),pero segun tengo entendido es O(n),es un algortimo de ordenacion llamado bucketsort u ordenamiento por casilleros:
1.public class practica_2 2.{ 3.public static void BucketSort (int[]a,int m) 4.{ 5.int[] buckets= new int[m];//asignación de complejidad O(1) 6.for (int j=0;j<m;++j)// bucle for de complejidad O(n),ya que recorre el vector completo 7.buckets[j]=0;//asignación de complejidad O(1) 8.for(int j=0;j<m;++j)// bucle for de complejidad O(n),ya que recorre el vector completo 9.buckets[j]=0;//asignación de complejidad O(1) 10.for(intI=0;i<a.length;++i) 11.++buckets[a[i]];//asignación de complejidad O(1) 12.for(int i=0;j=0;j<m;++j) bucle for de complejidad O(n),ya que recorre el vector completo 13.for(intk=buckets[j];k>0;--k) bucle for de complejidad O(n),ya que recorre el vector completo 14.a[i++]=j;//asignación de complejidad O(1) 15.} 16.}
la complejidad de la linea 6 a 7 es O(n)*O(1)=O(n) la complejidad de la linea 8 a 9 es O(n)*O(1)=O(n) la complejidad de la linea 10 a 11 es O(n)*O(1)=O(n) la complejidad de la linea 12 a 14 es O(n)*O(n)*O(1)=O(n^2) Por lo que la complejidad de este algoritmo es O(n^2)
Hice algo mal? |
|