The following animation shows how the fast sort algorithm works.
Quick Sort diagram: You can select the key element for each comparison in the diagram as the last element of the sequence.
#include <stdio.h>#include<stdlib.h>voidSwapint* x,int*y) { intTMP = *x; *x = *y; *y =tmp;}voidPrintlist (intList[],intN) { inti; for(i=0; i<n;i++) printf ("%d\t", List[i]); printf ("\ n");}voidQuickSort (intAintStart,intend) { if(A = = NULL | | start >=end)return; intKey =A[start]; intleft = start +1; intright =end; while(left <= right)//X¢òâµèºå { while(A[left] <= key && left <= right)//X¢òâµèºåLeft + +; while(A[right] > key && left <= right)//X¢òâµèºåRight--; if(Left <Right ) { //printf ("Swap%d &%d\n", A[left], a[right]);Swap (&a[left), &A[right]); Left++; Right--; } } //printlist (A, End-start + 1); //printf ("Left%d righ%d\n", left, right);Swap (&a[start], &A[right]); QuickSort (A, start, left-1); QuickSort (A, left+1, end);}voidMain () {Const intMax_elements =Ten; intList[max_elements]; inti =0; //²úéúìî³äðòáðµäëæ»úêý for(i =0; i < max_elements; i++) {List[i]= rand ()% -; } printf ("½øððååðòö®ç°µäðòáð:\n"); Printlist (list,max_elements); //sort the list using quicksortQuickSort (list,0, max_elements-1); //Print the resultprintf"ʹóã¿ìëùååðòëã ¨½øððååðòö®ºóµäðòáð:\n"); Printlist (list,max_elements);}
Quick Sort QuickSort for C + +