The classic fast sorting algorithm, as a programmer, all the time to complete the handwriting.
Code:
* * * main.cpp * * Created on:2014.6.12 * author:spike//*eclipse CDT, gcc 4.8.1*/#incl Ude <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 | | < 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
More Wonderful content: http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/