QuickSort és un algorisme de divisió i conquesta. En el paradigma de disseny de l'algoritme Divide & Conquer, dividim els problemes en subproblemes recursivament i després resolem els subproblemes i, finalment, combinem les solucions per trobar el resultat final. En aquest article ens centrarem en QuickSort In
En aquest article es tractaran les següents indicacions,
Anem a començar!
com fer un jframe
Una cosa que cal tenir en compte en dividir els problemes en subproblemes és que l’estructura dels subproblemes no canvia a partir del problema original.
L'algorisme Divide & Conquer té 3 passos:
- Divideix: es divideix el problema en subproblemes
- Conquer: Resolució recursiva dels subproblemes
- Combina: combina les solucions per obtenir el resultat final
Hi ha diversos algorismes basats en el paradigma divideix i conquesta. L’ordenació ràpida i la combinació es troben entre ells.
Tot i que el pitjor dels casos de complexitat temporal de QuickSort és O (n2), que és més que molts altres algorismes d’ordenació com Merge Sort i Heap Sort, QuickSort és més ràpid a la pràctica, perquè el seu bucle intern es pot implementar de manera eficient a la majoria d’arquitectures i a la majoria dades del món real.
Parlem de la implementació de l'algorisme d'ordenació ràpida. Els algorismes Quicksort prenen un element pivot i particionen la matriu al voltant de l’elememt pivot. Hi ha diverses variacions de Quicksot que depenen de com escolliu l'element pivot. Hi ha diverses maneres de triar l'element pivot:
- Triant el primer element
- Trieu l'últim element
- Escollir un element aleatori
- Element mitjà de recollida
La següent cosa important a entendre és que la funció partició () de l'algorisme d'ordenació ràpida. Funció de partició per agafar un element pivot, el situa a la posició correcta, mou tots els elements més petits que l’element pivot a la seva esquerra i tots els elements més grans a la seva dreta. Quicksort triga un temps lineal a fer-ho.
A continuació, la matriu es divideix en dues parts de l'element pivot (és a dir, elements inferiors a pivot i elements superiors a pivot) i les dues matrius s'ordenen recursivament mitjançant l'algorisme de Quicksort.
com crear sessió a Java
Ara que entenem el funcionament de l'algorisme QuickSort. Comprenem com implementar l'algorisme Quicksort a Java.
QuickSort Funció:
/ * La funció Quicksort necessita ordenar la matriu amb l’índex més baix i més alt * /
void sort (int arr [], int lowIndex, int highIndex) {// Fins a lowIndex = highIndex if (lowIndexVegem ara el codi de particionament per entendre com funciona.
Partició Codi
Al codi de partició, escollirem l’últim element com a element pivot. Recorrem la matriu completa (és a dir, utilitzant la variable j en el nostre cas). Seguim l’últim element més petit de la matriu (és a dir, utilitzant la variable i en el nostre cas). Si trobem algun element més petit que el pivot, moguem l'element actual d'intercanvi a [j] amb arr [i], en cas contrari continuem recorrent.
partició int (int arr [], int lowIndex, int highIndex) {// Creació de l'últim element com a pivot int pivot = arr [highIndex] // Ús de i per fer un seguiment d'elements més petits de pivot int i = (lowIndex-1) per a (int j = índex baix jAra que heu entès la funció de partició i Quicksort, vegeu-ne ràpidament el codi complet
QuickSort Codi Java
classe QuickSort {// Partition Method int partition (int arr [], int lowIndex, int highIndex) {int pivot = arr [highIndex] int i = (lowIndex-1) for (int j = lowIndex j// Mètode d’ordenació
void sort (int arr [], int lowIndex, int highIndex) {if (lowIndex// Mètode per imprimir matriu
static void printArray (int arr []) {int n = arr.length for (int i = 0 i// Mètode principal
public static void main (String args []) {int arr [] = {101, 37, 68, 29, 11, 5} int n = arr.length QuickSort ob = new QuickSort () ob.sort (arr, 0, n-1) System.out.println ('matriu ordenada') printArray (arr)}}Sortida:
c ++ com ordenar una matriu
Ara, després d'executar el programa Java anterior, hauríeu entès com funciona QuickSort i com implementar-lo a Java.Així hem arribat al final d’aquest article sobre ‘Quicksort a Java’. Si voleu obtenir més informació,fes un cop d'ull al per Edureka, una empresa d’aprenentatge en línia de confiança. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate & Spring
Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.