Quick Sort Algorithm code (c)
Address: http://blog.csdn.net/caroline_wendy
ClassicQuick Sorting AlgorithmAs a programmer, you must complete handwriting at any time.
Code:
/** Main. CPP ** created on: 2014.6.12 * Author: Spike * // * eclipse CDT, GCC 4.8.1 */# include <stdio. h> # include <stdlib. h> int randominrange (INT min, int max) {int random = rand () % (max-min + 1) + min; return random;} void swap (int * num1, int * num2) {int temp = * num1; * num1 = * num2; * num2 = temp;} int partition (INT data [], int length, int start, int end) {If (Data = NULL | length <= 0 | start <0 | End> = length) {return-1;} int Index = randominrange (START, end); swap (& Data [Index], & Data [end]); int small = start-1; for (Index = start; index <end; ++ index) {If (data [Index] <data [end]) {++ small; if (small! = Index) Swap (& Data [Index], & Data [small]) ;}}++ small; swap (& Data [small], & Data [end]); return small;} void quicksort (INT data [], int length, int start, int end) {If (START = END) return; int Index = partition (data, length, start, end); If (index> Start) quicksort (data, length, start, index-1); If (index <End) quicksort (data, length, index + 1, end) ;}int main (void) {int STR [] = {49, 38, 65, 97, 76, 13, 27, 49}; quicksort (STR, 8, 0, 7); For (int I: Str) {printf ("% d", I);} printf ("\ n"); Return 0 ;}
Output:
13 27 38 49 49 65 76 97