English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Questo esempio spiega i metodi di ordinamento comuni degli array in Java. Condivido con tutti per riferimento, come segue:
1、Metodo di ordinamento a bollebole
SortArray_01.java
public class SortArray_01 { public static void main(String args[]) { int[] array = { 14, 5, 86, 4, 12, 3, 21, 13, 11, 2, 55, 66, 22 }; // Creazione di un array uno-dimensionale inizializzato array System.out.println("Array non ordinato:"); for (int i = 0; i < array.length; i++) { // Percorso degli elementi dell'array array System.out.print(" " + array[i]); // Output degli elementi dell'array if ((i + 1) % 5 == 0) // Ogni 5 elementi per riga System.out.println(); } int mid; // Definire una variabile intermedia, che serve per il临时存储 dati for (int i = 0; i < array.length; i++) { // Esecuzione del metodo di ordinamento a bollebole for (int j = i; j < array.length; j++) { if (array[j] < array[i]) { mid = array[i]; array[i] = array[j]; array[j] = mid; } } } System.out.println("\nArray ordinato con il metodo di bollebole:"); for (int i = 0; i < array.length; i++) { // Esplorazione degli elementi dell'array array ordinato System.out.print(" " + array[i]); // Output degli elementi dell'array if ((i + 1) % 5 == 0) System.out.println(); // Ogni 5 elementi per riga } } }
Risultato dell'esecuzione:
Array non ordinato: 14 5 86 4 12 3 21 13 11 2 55 66 22 Array ordinato con il metodo di bollebole: 2 3 4 5 11 12 13 14 21 22 55 66 86
2、Ordinamento crescente dell'array
SortArray_02.java
import java.util.Arrays; import java.util.Random; public class SortArray_02 { public static void main(String[] args) { Random rd = new Random(); int[] array = new int[15]; // Dichiarazione dell'array System.out.println("Prima dell'uso del metodo sort:"); for (int i = 0; i < array.length; i++) { // Utilizzare numeri casuali per generare 15 numeri casuali tra 0 e 20 array[i] = rd.nextInt(20); // Assegna un valore all'array array System.out.print(" " + array[i]); if ((i + 1) % 5 == 0) System.out.println(); } Arrays.sort(array); // Ordina l'array array in ordine crescente // Stampa l'array dopo l'uso del metodo sort for (int i = 0; i < array.length; i++) { // Stampa i dati dell'array array System.out.print(" " + array[i]); if ((i + 1) % 5 == 0) System.out.println(); } } }
Risultato dell'esecuzione:
Array prima dell'uso del metodo sort: 13 12 11 18 11 11 17 13 11 8 1 0 9 18 3 Array dopo l'uso del metodo sort: 0 1 3 8 9 11 11 11 11 12 13 13 17 18 18
3、Metodo di ordinamento rapido
SortArray_03.java
public class SortArray_03 { public static void main(String args[]) { int[] intArray = { 12, 11, 45, 6, 8, 43, 40, 57, 3, 20, 15, 88, 23 }; System.out.println("Array prima dell'ordinamento:"); for (int i = 0; i < intArray.length; i++) { System.out.print(" " + intArray[i]); // Output degli elementi dell'array if ((i + 1) % 5 == 0) // Ogni 5 elementi per riga System.out.println(); } System.out.println(); int[] b = quickSort(intArray, 0, intArray.length - 1); // Chiamare quickSort System.out.println("Array ordinato con il metodo quickSort:"); for (int i = 0; i < b.length; i++) { System.out.print(" " + b[i]); if ((i + 1) % 5 == 0) // Ogni 5 elementi per riga System.out.println(); } } public static int getMiddle(int[] array, int sinistra, int destra) { int temporaneo; // Eseguire una rapida ordinazione, restituire la posizione del centro int centro = array[sinistra]; // Mettere il centro in a[0] while (sinistra < destra) { while (sinistra < destra && array[destra] >= centro) destra--; temp = array[right]; // Spostare i dati più piccoli del punto centrale a sinistra array[right] = array[left]; array[left] = temp; while (sinistra < destra && array[sinistra] <= centro) left++; temp = array[right]; // Spostamento dei dati maggiori del punto centrale a destra array[right] = array[left]; array[left] = temp; } array[left] = mid; // Spostamento del centro nella posizione corretta return left; // Restituisce il punto centrale } public static int[] quickSort(int[] array, int left, int right) { // Metodo di ordinamento rapido if (left < right - 1) { // Se i punti di inizio e fine non si sovrappongono, ossia i puntatori non hanno raggiunto la fine int mid = getMiddle(array, left, right); // Nuovo recupero del punto centrale quickSort(array, left, mid - 1); quickSort(array, mid + 1, right); } return array; } }
Risultato dell'esecuzione:
Array prima dell'ordinamento: 12 11 45 6 8 43 40 57 3 20 15 88 23 Array dopo l'ordinamento con il metodo quicksort: 3 6 8 11 12 20 15 23 40 43 45 88 57
4. Metodo di selezione
SortArray_04.java
public class SortArray_04 { public static void main(String args[]) { int[] array = { 14, 5, 86, 4, 12, 3, 51, 13, 11, 2, 32, 6, 45, 34 }; // Creazione di un array uno-dimensionale inizializzato array int keyValue; // Rappresenta il valore minimo int index; // Rappresenta l'indice del valore minimo int temp; // Variabile intermedia System.out.println("Array non ordinato:"); for (int i = 0; i < array.length; i++) { // Percorso degli elementi dell'array array System.out.print(" " + array[i]); // Output degli elementi dell'array if ((i + 1) % 5 == 0) // Ogni 5 elementi per riga System.out.println(); } for (int i = 0; i < array.length; i++) { // Utilizzo del nucleo dell'algoritmo di selezione index = i; keyValue = array[i]; per int j = i; j < array.length; j++) se (array[j] < keyValue) { index = j; keyValue = array[j]; } temp = array[i]; array[i] = array[index]; array[index] = temp; } System.out.println("\nArray dopo l'ordinamento con il metodo di selezione:"); for (int i = 0; i < array.length; i++) { // Esplorazione degli elementi dell'array array ordinato System.out.print(" " + array[i]); // Output degli elementi dell'array if ((i + 1) % 5 == 0) System.out.println(); // Ogni 5 elementi per riga } } }
Risultato dell'esecuzione:
Array non ordinato: 14 5 86 4 12 3 51 13 11 2 32 6 45 34 Array dopo l'ordinamento con il metodo di selezione: 2 3 4 5 6 11 12 13 14 32 34 45 51 86
PS: vi consiglio un altro strumento di visualizzazione dell'ordinamento per il vostro riferimento:
Strumento di visualizzazione animata online per la dimostrazione del processo di ordinamento degli algoritmi di inserimento, selezione, bolle, fusione, Shell e quicksort:
http://tools.jb51.net/aideddesign/paixu_ys
Per coloro che sono interessati a ulteriori contenuti su algoritmi Java, possono consultare la sezione speciale del nostro sito: 'Tutorial Java su Strutture Dati e Algoritmi', 'Riassunto delle tecniche di manipolazione dei nodi DOM in Java', 'Riassunto delle tecniche di manipolazione dei file e delle directory in Java' e 'Riassunto delle tecniche di gestione della cache in Java'.
Spero che il contenuto di questo articolo possa essere utile per la progettazione di programmi Java.
Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il diritto d'autore è dell'autore originale, il contenuto è stato contribuito volontariamente dagli utenti di Internet e caricato autonomamente, il sito web non detiene i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, il sito web rimuoverà immediatamente i contenuti sospetti di violazione del copyright.