bubble sort java java sorting algorithms code examples
Aquest tutorial explicarà el tipus de bombolla a Java juntament amb l'algorisme de classificació principal de Java, la implementació de la classificació de bombolles i els exemples de codi:
Un algorisme d'ordenació es pot definir com un algorisme o un procediment per posar elements d'una col·lecció en un ordre específic. Per exemple, si teniu una col·lecció numèrica com una ArrayList d'enters, és possible que vulgueu ordenar els elements d'ArrayList en ordre ascendent o descendent.
De la mateixa manera, és possible que vulgueu organitzar les cadenes d'una col·lecció de cadenes en ordre alfabètic o lexicogràfic. Aquí és on apareixen els algorismes d’ordenació a Java.
com reproduir fitxers .mkv a Windows
Què aprendreu:
Algorismes principals de classificació a Java
Els algoritmes d’ordenació se solen avaluar en funció de la complexitat temporal i espacial. Java admet diversos algorismes d’ordenació que s’utilitzen per ordenar o ordenar les col·leccions o les estructures de dades.
A la taula següent es mostren els principals algorismes d’ordenació admesos a Java, juntament amb les seves complexitats del millor o del pitjor dels casos.
Complexitat horària | ||||
---|---|---|---|---|
Radix Sort | Algorisme d’ordenació lineal. | O (nk) | O (nk) | O (nk) |
Algorisme d'ordenació | Descripció | El millor cas | Pitjor dels casos | Cas mitjà |
Sort de bombolles | Compara l'element actual amb elements adjacents repetidament. Al final de cada iteració, l'element més pesat apareix al lloc adequat. | O (n) | O (n ^ 2) | O (n ^ 2) |
Ordenació per inserció | Insereix cada element de la col·lecció al lloc adequat. | O (n) | O (n ^ 2) | O (n ^ 2) |
Combina la classificació | Segueix l'enfocament de dividir i conquerir. Divideix la col·lecció en sub-col·leccions més senzilles, les ordena i després combina tot | O (nlogn) | O (nlogn) | O (nlogn) |
Classificació ràpida | Tècnica d'ordenació més eficient i optimitzada. Usos per dividir i conquerir per ordenar la col·lecció. | O (nlogn) | O (n ^ 2) | O (nlogn) |
Selecció Ordena | Cerca l’element més petit de la col·lecció i col·loqueu-lo al lloc adequat al final de cada iteració | O (N ^ 2) | O (N ^ 2) | O (N ^ 2) |
Ordena en pila | Els elements s’ordenen per muntatge mínim o màxim. | O (nlogn) | O (nlogn) | O (nlogn) |
A part de les tècniques d’ordenació que es donen a la taula anterior, Java també admet les següents tècniques d’ordenació:
- Classificació del cubell
- Comptant ordenar
- Ordenació de Shell
- Ordenar pinta
Però aquestes tècniques s’utilitzen amb moderació en aplicacions pràctiques, per tant aquestes tècniques no formaran part d’aquesta sèrie.
Parlem de la tècnica de classificació de bombolles a Java.
Sort de bombolles a Java
L’ordenació de bombolles és la tècnica d’ordenació més senzilla de Java. Aquesta tècnica ordena la col·lecció comparant repetidament dos elements adjacents i intercanviant-los si no estan en l'ordre desitjat. Així, al final de la iteració, l’element més pesat es bombolla per reclamar la seva posició legítima.
Si hi ha n elements a la llista A donats per A (0), A (1), A (2), A (3), .... A (n-1), llavors A (0) es compara amb A (1) ), A (1) es compara amb A (2) i així successivament. Després de comparar si el primer element és més gran que el segon, els dos elements es canvien si no estan en ordre.
Algorisme de classificació de bombolles
A continuació es mostra l’algorisme general per a la tècnica d’ordenació de bombolles:
Pas 1: Per a i = 0 a N-1, repetiu el pas 2
Pas 2: Per a J = i + 1 a N - repeteixo
Pas 3: si A (J)> A (i)
Intercanvia A (J) i A (i)
(Fi del bucle interior per al bucle)
(Finalitza si exterior per a bucle)
Pas 4: Surt
Ara demostrem la tècnica de classificació de bombolles amb un exemple il·lustratiu.
Prenem una matriu de mida 5 i il·lustrem l'algorisme de classificació de bombolles.
Ordeneu una matriu utilitzant la classificació Bubble
La llista següent s'ha d'ordenar.
eines utilitzades en l’anàlisi de big data
Com podeu veure més amunt, la matriu està completament ordenada.
La il·lustració anterior es pot resumir en forma de taula com es mostra a continuació:
Passar | Llista no classificada | comparació | Llista ordenada |
---|---|---|---|
{3,6,11,4,15} | {11,4} | {3,6,4,11,15} | |
1 | {11, 3, 6,15,4} | {11,3} | {3,11,6,15,4} |
{3,11,6,15,4} | {11,6} | {3,6,11,15,4} | |
{3,6,11,15,4} | {11,15} | {3,6,11,15,4} | |
{3,6,11,15,4} | {15,4} | {3,6,11,4,15} | |
2 | {3,6,11,4,15} | {3,6} | {3,6,11,4,15} |
{3,6,11,4,15} | {6,11} | {3,6,11,4,15} | |
3 | {3,6,4,11,15} | {3,6} | {3,6,4,11,15} |
{3,6,4,11,15} | {6,4} | {3,4,6,11,15} | |
{3,4,6,11,15} | ORDENAT |
Com es mostra a l'exemple anterior, l'element més gran es bombolla fins a la seva posició correcta amb cada iteració / passada. En general, quan arribem a N-1 (on N és un nombre total d'elements de la llista) passa; tindrem tota la llista ordenada.
Exemple de codi de classificació de bombolles
El programa següent mostra la implementació de Java de l'algorisme de classificació de bombolles. Aquí mantenim una matriu de nombres i en fem servir dos per a bucles que travessen els elements adjacents de la matriu. Si dos elements adjacents no estan en ordre, es canviaran.
import java.util.*; class Main{ // Driver method to test above public static void main(String args()) { //declare an array of integers int intArray() = {23,43,13,65,11,62,76,83,9,71,84,34,96,80}; //print original array System.out.println('Original array: ' + Arrays.toString(intArray)); int n = intArray.length; //iterate over the array comparing adjacent elements for (int i = 0; i intArray(j+1)) { int temp = intArray(j); intArray(j) = intArray(j+1); intArray(j+1) = temp; } //print the sorted array System.out.println('Sorted array: ' + Arrays.toString(intArray)); } }
Sortida:
Matriu original: (23, 43, 13, 65, 11, 62, 76, 83, 9, 71, 84, 34, 96, 80)
Matriu ordenada: (9, 11, 13, 23, 34, 43, 62, 65, 71, 76, 80, 83, 84, 96)
Preguntes freqüents
P # 1) Quins són els algorismes d'ordenació a Java?
Resposta: L'algorisme d'ordenació es pot definir com un algorisme o procediment mitjançant el qual es poden ordenar o ordenar els elements d'una col·lecció de la manera desitjada.
A continuació es detallen alguns dels algorismes d’ordenació compatibles amb Java:
- Sort de bombolles
- Classificació per inserció
- Ordenació de la selecció
- Combina la classificació
- Quicksort
- Sort de Radix
- Heapsort
Q # 2) Quin és el millor algorisme d'ordenació a Java?
Resposta: Merge Sort se suposa que és l'algorisme d'ordenació més ràpid a Java. De fet, Java 7 ha utilitzat internament la classificació de combinacions per implementar el mètode Collections.sort (). Quick Class és també un altre millor algorisme d'ordenació.
Q # 3) Què és el tipus Bubble a Java?
Resposta: El tipus de bombolla és l'algorisme més simple de Java. L’ordenació de bombolles sempre compara dos elements adjacents de la llista i els canvia si no estan en l’ordre desitjat. Així, al final de cada iteració o passada, l’element més pesat apareix al lloc adequat.
Q # 4) Per què Bubble és de tipus N?2?
Resposta: Per implementar l’ordenació de bombolles, en fem servir dos per a bucles.
exemple de cas de prova per a proves manuals
El treball total realitzat es mesura per:
Quantitat de treball realitzat per bucle intern * nombre total de vegades que s'executa el bucle exterior.
Per a una llista de n elements, el bucle intern funciona per O (n) per a cada iteració. El bucle exterior s’executa per a la iteració O (n). Per tant, el treball total realitzat és O (n) * O (n) = O (n2)
Q # 15) Quins són els avantatges del tipus Bubble?
Resposta: Els avantatges de Bubble Sort són els següents:
- Fàcil de codificar i entendre.
- Es necessiten poques línies de codi per implementar l'algorisme.
- L'ordenació es fa al lloc, és a dir, no es requereix memòria addicional i, per tant, no hi ha cap sobrecàrrega de memòria.
- Les dades ordenades estan disponibles immediatament per al seu processament.
Conclusió
Fins ara, hem parlat de l’algorisme d’ordenació de Bubble Sort a Java. També vam explorar l'algorisme i la il·lustració detallada de l'ordenació d'una matriu mitjançant la tècnica de classificació de bombolles. Després vam implementar el programa Java a Bubble Sort.
Al següent tutorial, continuarem amb les altres tècniques d’ordenació a Java.
=> Consulteu TOTS els tutorials de Java aquí.
Lectura recomanada
- Selecció d'ordenació a Java - Algorisme de selecció i exemples
- Classificació per inserció a Java: algorisme i exemples d'ordenació per inserció
- Classificació de bombolles en C ++ amb exemples
- Com ordenar una matriu a Java: tutorial amb exemples
- Tutorial de longitud de matriu de Java amb exemples de codi
- MongoDB Sort () Mètode amb exemples
- Ordre d'ordenació Unix amb sintaxi, opcions i exemples
- Paraula clau 'aquesta' de Java: tutorial amb exemples de codi