Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> Domanda >> PC Risoluzione dei problemi >> .

Cos'è l'algoritmo di ordinamento rapido [spiegato con esempi]

L'algoritmo Quick Sort è un algoritmo di ordinamento divide et impera che funziona partizionando ricorsivamente l'array di input in sottoarray sempre più piccoli finché ciascun sottoarray non contiene un solo elemento. L'algoritmo è veloce, efficiente e ampiamente utilizzato in informatica.

Come funziona l'ordinamento rapido:

1. Dividi: Scegli un elemento pivot dall'array (spesso l'ultimo elemento).

2. Partizione: Riorganizzare l'array in modo che tutti gli elementi inferiori al pivot siano a sinistra del pivot e tutti gli elementi maggiori del pivot siano a destra. L'elemento pivot è nella sua posizione ordinata finale.

3. Ricorso: Ripetere i due passaggi precedenti per i sottoarray sinistro e destro, suddividendoli ricorsivamente finché ciascun sottoarray non contiene un solo elemento.

Esempio 1:

Considera l'array [5, 3, 8, 2, 1, 4].

UN. Dividi:scegli l'ultimo elemento, 1 come pivot.

B. Partizione:

- Riorganizzare l'array:[3, 2, 1, 5, 4, 8] (1 è nella sua posizione ordinata).

C. Ricorsione:

- Sottoarray sinistro:[3, 2, 1] (già ordinato)

- Sottoarray destro:[5, 4, 8] (applica ricorsivamente l'ordinamento rapido)

Dopo aver applicato l'ordinamento rapido a entrambi i sottoarray, l'array ordinato finale è:[1, 2, 3, 4, 5, 8].

Esempio 2:

Ordinamento di un array più grande

Considera un array [7, 2, 9, 5, 3, 4, 1, 8, 6].

UN. Dividi:scegli l'ultimo elemento, 6, come perno.

B. Partizione:

- Riorganizzare l'array:[2, 5, 3, 4, 1, 7, 9, 6] (6 è nella sua posizione ordinata).

C. Ricorsione:

- Sottoarray sinistro:[2, 5, 3, 4, 1] (applica ricorsivamente l'ordinamento rapido)

- Sottoarray destro:[7, 9] (già ordinato)

Dopo aver completato le chiamate ricorsive, l'array ordinato è:[1, 2, 3, 4, 5, 6, 7, 8, 9].

Complessità temporale:

- Caso migliore:O(n log n)

- Caso medio:O(n log n)

- Caso peggiore:O(n^2) (si verifica quando l'array è già ordinato o invertito)

Nel complesso, l'algoritmo Quick Sort offre una soluzione di ordinamento efficiente con una buona complessità temporale nel caso medio di O(n log n). La sua semplicità e versatilità lo hanno reso un algoritmo popolare per l'ordinamento delle attività in vari linguaggi di programmazione.

 

Domanda © www.354353.com