- 1,401
- 247
- CPU
- Intel Core i5-3470
- Scheda Madre
- ASUS P8Z77-V LX
- HDD
- Western Digital Green 1TB 7200rmp + Crucial M550 128Gb
- RAM
- Corsair 8Gb(2x4GB) 1600Mhz
- GPU
- Msi GeForce 770 2Gb
- Audio
- Integrata mainbord
- Monitor
- Asus VE247H / 23.6"
- PSU
- XFX 550W Core Edition
- Case
- Fractal Design R4
- OS
- Arch Linux + Gnome
Ciao a tutti guyz,
dato che sono nuovo nella programmazione, vi chiedo a priori di avere un po' di pazienza con me, imparo quel che posso il prima possibile :asd:
Da qualche giorno sto cercando di capire bene il bubble sort, dato che il professore ci ha introdotto agli array, ma ho ancora qualche difficoltà.
Mi rivolgo a voi perché sono sicuro che voi siete in grado di scomporre il codice e spiegarmelo per bene.
Il codice di cui parlo l'ho trovato su internet e funziona alla perfezione:
Adesso, vi vorrei dire cosa ho capito io dal codice: diciamo che la prima parte è relativa, serve solo a riempire l'array con i numeri che vogliamo ordinare. Quello che mi confonde è "l'intersezione" di quei cicli.
Suppongo che il ciclo più interno (quello che poi è seguito dall' if e dagli swap) sia per trovare il numero più piccolo e posizionarlo nella prima variabile dell'array (di sicuro mi sarò espresso malissimo, ma spero abbiate capito).
Adesso, i cicli che lo precedono non mi sono molto chiari, quindi se qualcuno gentilmente me li spiega, mi fa un enorme favore :asd:
Non capisco come facciano ad escludere il numero minore che abbiamo già posizionato dal ciclo che viene dopo quello per trovare appunto il numero minore.
Spero che abbiate capito (in caso contrario, mea culpa xD) e che possiate aiutarmi.
Grazie per l'attenzione.
dato che sono nuovo nella programmazione, vi chiedo a priori di avere un po' di pazienza con me, imparo quel che posso il prima possibile :asd:
Da qualche giorno sto cercando di capire bene il bubble sort, dato che il professore ci ha introdotto agli array, ma ho ancora qualche difficoltà.
Mi rivolgo a voi perché sono sicuro che voi siete in grado di scomporre il codice e spiegarmelo per bene.
Il codice di cui parlo l'ho trovato su internet e funziona alla perfezione:
Codice:
#include <stdio.h>
int main()
{
int array[100], n, c, d, swap;
printf("Inserisci il numero di elementi dell'array: ");
scanf("%d", &n);
printf("Inserisci %d i valori:\n ", n);
for (c = 0; c < n; c++)
scanf("%d", &array[c]);
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (array[d] > array[d+1])
{
swap = array[d];
array[d] = array[d+1];
array[d+1] = swap;
}
}
}
printf("La lista in ordine crescente è:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);
return 0;
}
Adesso, vi vorrei dire cosa ho capito io dal codice: diciamo che la prima parte è relativa, serve solo a riempire l'array con i numeri che vogliamo ordinare. Quello che mi confonde è "l'intersezione" di quei cicli.
Suppongo che il ciclo più interno (quello che poi è seguito dall' if e dagli swap) sia per trovare il numero più piccolo e posizionarlo nella prima variabile dell'array (di sicuro mi sarò espresso malissimo, ma spero abbiate capito).
Adesso, i cicli che lo precedono non mi sono molto chiari, quindi se qualcuno gentilmente me li spiega, mi fa un enorme favore :asd:
Non capisco come facciano ad escludere il numero minore che abbiamo già posizionato dal ciclo che viene dopo quello per trovare appunto il numero minore.
Spero che abbiate capito (in caso contrario, mea culpa xD) e che possiate aiutarmi.
Grazie per l'attenzione.