min, max d'éxécution

min, max d'éxécution - Java - Programmation

Marsh Posté le 28-09-2003 à 03:10:20    

Code :
  1. element = 1000  //(array.length) = 1000
  2. for (k=elements>>1; k>0; k--) //1
  3. {
  4.   tmp = array[k-1];
  5.   while (k <= n>>1)  //2
  6.   {
  7.     i = k<<1;
  8.     if ((i<n) && (array[i-1]<array[i]))
  9.       i++;
  10.     if (tmp >= array[i-1])
  11.        break;
  12.     else
  13.     {
  14.       k = i;
  15.     }
  16.   }
  17. }


 
je me demande combien de fois minimum et maximum que //1 et //2 peuvent s'exécuter
 
pour 1 je dirais element/2
 
pour 2 je dirais min 1 et max element /2...  
 
quelqu'un peut confirmer?


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 28-09-2003 à 03:10:20   

Reply

Marsh Posté le 28-09-2003 à 09:15:24    

génial, on capte rien, on sais pas ce que tu veux faire, y a un tas de variable comme n qui sont définit nulle part, on adore les optimisations de tueurs comme les décalages. après on pourra peut être estimer la complexité de ton algo (qui à l'air assez mal foutu d'ailleurs...)


Message édité par Taz le 28-09-2003 à 09:21:57
Reply

Marsh Posté le 28-09-2003 à 13:41:32    

[:meganne]

Reply

Marsh Posté le 28-09-2003 à 15:24:21    

C'est la rentrée des classes [:dawa]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-09-2003 à 16:43:19    

l'algo vient de http://www.ldknet.org/~mweitzel/cc++/Sort.java.html
 

Code :
  1. public int[] Heap2(int array[], int elements)
  2. {
  3. int tmp, k;
  4. // Heap aufbauen ...
  5. for (k=elements>>1; k>0; k--)
  6.    heapify_iter(array, k, elements);
  7. do
  8. {
  9.    elements--;
  10.    { // SWAP
  11.      tmp = array[0];
  12.      array[0] = array[elements];
  13.      array[elements] = tmp;
  14.    }
  15.    heapify_iter(array, 1, elements);
  16. }
  17. while (elements>1);
  18. return array;
  19. }
  20. private void heapify_iter(int array[], int k, int n)
  21. {
  22.   int i, tmp;
  23.   tmp = array[k-1];
  24.   while (k <= n>>1)
  25.   {
  26.     i = k<<1;
  27.     if ((i<n) && (array[i-1]<array[i])) i++;
  28.     if (tmp >= array[i-1]) break;
  29.     else
  30.     {
  31.       array[k-1] = array[i-1];
  32.       k = i;
  33.     }
  34.   }
  35.   array[k-1] = tmp;
  36.   }


 
benou, je suis du québec, ça fait donc un bon moment que les classes sont commencé


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed