Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c++] Algoritmo di ordinamento shell short

    Salve ragazzi, sulle slide del mio professore di informatica è illustrato l'algoritmo di shell per quanto riguarda l'ordinamento.
    Ve lo propongo nella forma cosi come è riportato.
    Codice PHP:
    void shell(int A[], int n) {
           
    int i,j,salto=n/2;
                  while (
    salto 0) {
                      for (
    i=salto;i<n;i++)        {
                            
    j=i-salto;
                                 while (
    j>=0) {
                                       
    k=j+salto;
                                       if(
    A[j]<=A[k]) { j=-/*esce*/ }
                                       else {
                                       
    scambia(A[j],A[k]);
                                       
    j=j-salto;
                                       }
                                                   }
                                                            }
                                      
    salto salto/2;
                                            }

    Tutto ok per quanto riguarda il funzionamento dell'algoritmo ma non riesco a capire perchè l'algoritmo dovrebbe fermarsi:
    se il while(salto>0) dipende da salto = salto/2 se divido un numero intero per 2 non otterrò mai zero! La condizione while dipende forse dal fatto che ho definito salto come un intero quindi se
    salto = 1 ----> salto /2 = 0??
    L'algoritmo è giusto cosi come scritto?

  2. #2
    Ragazzi il problema è che dividendo un intero uguale a 1 per 2 si ottiene zero!
    Risolto SI PUò ELIMINARE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.