Pages: [1]   Go Down
Print
Author Topic: pseudocodice insertionsort  (Read 2101 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rox
Forumista
***
Offline Offline

Posts: 633


« on: 20-10-2009, 12:16:52 »

ragazzi so che è una domanda banale ma è un bel po' di tempo che non programmo e alcune cose le ho dimenticate   cry
ho provato a implementare in java lo pseudocodice che si trova a pag 14 del libro di algoritmi e questo è il codice
Code:
public class InsertionSort{
public static void main (String args[]){
int [] a=new int[10];

for(int i=0;i<a.length;i++)
a[i]=(int)(Math.random()*30)+1;
insertionSort(a);
for(int i=0;i<a.length;i++)
System.out.println(a[i]);
}


public static void  insertionSort(int [] a)
{
int j,i;
for(j=2;j<a.length;j++)
{
int chiave=a[j];
i=j-1;
while(i>0 &&a[i]>chiave)
{
a[i+1]=a[i];
i=i-1;
}
a[i+1]=chiave;
}


}
}
l'array è ordinato ,meno che il primo elemento...qualcuno mi saprebbe dire dove ho sbagliato?
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
IQuest
Matricola
*
Offline Offline

Posts: 31


« Reply #1 on: 22-10-2009, 18:10:24 »

L'unico problema è che devi sostituire l'ultima assegnazione del ciclo for() con "a=chiave;".
Logged
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #2 on: 24-10-2009, 08:02:50 »

L'unico problema è che devi sostituire l'ultima assegnazione del ciclo for() con "a=chiave;".
non posso assegnare a un array un singolo int!!!cosa intendevi?
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #3 on: 24-10-2009, 10:14:42 »

L'unico problema è che devi sostituire l'ultima assegnazione del ciclo for() con "a=chiave;".
non posso assegnare a un array un singolo int!!!cosa intendevi?
Il collega ha dato una risposta corretta , ma ha dimenticato che in un forum il codice va obbligatoriamente entro un apposito tag [CODE] .

Se provi a fare Quote sul suo messaggio (come a dire il vero hai effettivamente fatto) noterai che quel codice è leggermente diverso da quello che si legge nella versione "pre-processata" del messaggio .
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #4 on: 24-10-2009, 10:53:15 »

non ci sto capendo niente!!!!!!help meee!
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #5 on: 24-10-2009, 10:56:22 »

Ma ho pure scritto in italiano  ...
« Last Edit: 24-10-2009, 11:04:07 by reversengineer » Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
IQuest
Matricola
*
Offline Offline

Posts: 31


« Reply #6 on: 24-10-2009, 11:03:05 »

L'unico problema è che devi sostituire l'ultima assegnazione del ciclo for() con "a=chiave;".
non posso assegnare a un array un singolo int!!!cosa intendevi?
Ha ragione ReverseEngineer, intendevo questo:
Code:
a[i] = chiave;
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #7 on: 24-10-2009, 11:04:37 »

Ad ogni modo, l'errore tuo, rox, sta nel fatto che cominci il primo ciclo for da 2 invece che da 1, perché hai fatto confusione tra l'indicizzazione 0-based di Java e quella 1-based della pseudo-codifica .
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #8 on: 24-10-2009, 12:28:13 »

Ad ogni modo, l'errore tuo, rox, sta nel fatto che cominci il primo ciclo for da 2 invece che da 1, perché hai fatto confusione tra l'indicizzazione 0-based di Java e quella 1-based della pseudo-codifica .
ah ho capitoooooo!grazie reverse!
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Pages: [1]   Go Up
Print
Jump to: