Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tris Shell nombre d'échange

et oui encore un tri

    13 janvier 2011 à 15:33:12

    Bonjour à tous,

    J’ai un petit problème avec le tri shell. En effet, Le tri fonctionne bien, mais je dois inclure des compteurs de comparaison et d’échange, mais j’ai l’impression que les valeurs que j’obtiens sont faibles comparer au tableau trouvé sur le net.

    Les valeurs du tableau sont générées aléatoirement.

    public static void TriShell(int[] T)
    	{
    		int nombreEchange=0;
    		int nombreComparaison=0;
    		int d=1;		//initialisation du pas
    		int dimension=1;        //initialisation de la taille du tableau des pas
    
    		while(3*d+1<T.length)	//genere les valeurs du pas pour la dimension le tableau des pas
    		{
    			d=3*d+1;	//formule du pas
    			dimension++;
    		}
    
    		int[] Shell=new int[dimension];	//creation du tableau pour y entrer les valeur du pas
    		int j=0;	//1ere position du tableau 
    		
    		while(d>0)
    		{
    			Shell[j]=d;	//on y entre les valeurs du pas
    			j++;		// on incrémente une case
    			d=(d-1)/3;	//on réduit le pas.		
    		}
    		
    		for(int m=0 ; m<Shell.length ; m++)
    		{
    			int pas = Shell[m];
    			for(int i=pas ; i<T.length ; i++)
    			{
    				int Temp=T[i];
    				j=i;
    				while((j>=pas)&&(T[j-pas]>Temp))
    				{
    					T[j]=T[j-pas];
    					j=j-pas;
    					nombreEchange++;
    					
    					
    				}//fin while
    				
    				T[j]=Temp;	
    				nombreComparaison++;
    				
    			}//fin for
    			
    		}//fin for
    		System.out.println("Comparaison: "+nombreComparaison+" Echanges: "+nombreEchange);		
    	}//fin tri
    


    Je pense que j'en suis pas loin, mais ça fait un moment que je tourne en rond :-° .
    • Partager sur Facebook
    • Partager sur Twitter
      14 janvier 2011 à 20:18:34

      Quelqu'un aurait une idée?
      • Partager sur Facebook
      • Partager sur Twitter

      Tris Shell nombre d'échange

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown