Vse, kar morate vedeti o Quicksort v C ++



Ta članek vam bo zagotovil podrobno in izčrpno znanje o tem, kako implementirati Quicksort v C ++ s primeri.

Obstaja ogromno algoritmov za razvrščanje. Iskanje ustrezne aplikacije je naloga, ki zahteva kratko razumevanje dejavnikov, kot so zmogljivost, časovna zapletenost, dolžina kode itd. Določenega algoritma. V tem prispevku si bomo ogledali vse bistvene koncepte, potrebne za izvajanje Quicksort v jeziku C ++ v naslednjem vrstnem redu:

Razumevanje algoritma Quicksort

Tako kot Združi razvrsti , Quicksort sledi strategiji deli in vladaj. Z uporabo strategije razdeli in premagaj razdelimo problem na številne podprobleme in jih rešujemo rekurzivno. Najprej bomo korak za korakom razumeli celoten postopek, nato pa bomo s pomočjo primera razvili globoko razumevanje celotnega procesa.





  1. Najprej bomo od uporabnika zahtevali nesortirano matriko.

  2. Ko dobimo nesortirano matriko, moramo iz nje izbrati vrtilno vrednost. Izberemo lahko poljubno vrednost.



  3. Ko izberemo vrtilno točko, moramo razporediti ostale elemente polja tako, da bi morali biti vsi elementi, manjši od vrtilne vrednosti, postavljeni desno od vrtilne vrednosti in vsi elementi večji od pivotne točke vrednost naj bo postavljena desno od vrtilne vrednosti.

  4. 3. korak izvajamo, dokler ne dobimo razvrščene matrike.

Zdaj pa si oglejmo primer in izvedimo algoritem ter si oglejmo, kako deluje.



Pozdravljeni [5, 4, 1, 11, 9, 6, 2, 3]. V tem primeru bomo pivot vedno obravnavali kot najbolj desni element seznama.

Quicksort v jeziku C ++

Pojdimo skozi vsak korak in razumemo logiko, s katero smo rešili težavo.

vrti in odklopi v sql
  • Najprej smo za vrtišče izbrali »3« in na desni strani razporedili vse elemente, manjše od »3«, in vse elemente, večje od »3«.

  • Na tej točki imamo 2 podproblema. Najprej rešimo podproblem na desni. Za pivot smo izbrali enega in na desno postavili '2'.

  • Da bi rešili drugi podproblem, za vrtišče izberemo '6' in postavimo elemente, kot smo že omenili.

  • Imamo še 2 podproblema. Prvo rešimo tako, da za vrtišče izberemo 4, drugo pa z izbiro 9 kot vrtišče. Na koncu imamo še razvrščeno matriko z elementi, ki so postavljeni na indeks podčrtanja.

Opomba- Pomembno je razumeti, da vse operacije potekajo v istem nizu. Nova polja niso ustvarjena.

Pseudocode za Quicksort v jeziku C ++

QuickSort (matrika [], start_index, end_index) {if (start_index

Program Quicksort v jeziku C ++

Razumeli smo algoritem in razvili globoko razumevanje delovanja algoritma. Izvedimo Quicksort v jeziku C ++ in napišite program za razvrščanje matrike.

kako narediti posnetek zaslona v selenium webdriver z uporabo Java -
#include z uporabo imenskega prostora std void swap_elements (int * a, int * b) {int temp = * a * a = * b * b = temp} int particija (int array [], int start_index, int end_index) {int pivot = matrika [end_index] int i = (start_index - 1) za (int j = start_index j<= end_index- 1 j++) { if (array[j] <= pivot) { i++ swap_elements(&array[i], &array[j]) } } swap_elements(&array[i + 1], &array[end_index]) return (i + 1) } void quickSort(int array[], int start_index, int end_index) { if (start_index < end_index) { int partition_index = partition(array, start_index, end_index) quickSort(array, start_index, partition_index - 1) quickSort(array, partition_index + 1, end_index) } } void printArray(int array[], int number) { int i cout<<'Sorted Array: ' for (i = 0 i < number i++) cout << array[i] << ' ' cout << endl } int main() { int Hello[30] int i int NumberofElements cout<>Stroški NumberofElements<<'Enter the elements one by one: ' for(i=0i>Pozdravljeni [i]} quickSort (Pozdravljeni, 0, NumberofElements-1) printArray (Pozdravljeni, NumberofElements) return 0}

Izhod:

Časovna zapletenost

Pogovorimo se o najpomembnejšem vidiku katerega koli algoritma za razvrščanje, to je časovni zapletenosti. Pove nam o delovanju algoritma v različnih scenarijih. Te vrednosti nam lahko pomagajo pri odločitvi, ali lahko uporabimo ta algoritem za svojo aplikacijo.

  • Najboljši primer- O (n)
  • Povprečni primer- (nlogn)
  • V najslabšem primeru- O (št2.)

S tem smo prišli do konca tega članka Quicksort in C ++. Če želite izvedeti več, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je zasnovan tako, da vas usposobi za temeljne in napredne koncepte Java, skupaj z različnimi Java okviri, kot sta Hibernate & Spring.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje tega spletnega dnevnika, mi pa se vam bomo javili v najkrajšem možnem času.