-
반응형1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include <stdio.h>#include <stdlib.h>void printArr(int *a, int start, int end){int i;for (i = start; i <= end; i++)printf("%3d", a[i]);printf("\n");}int partition(int a[], int p, int r){int i, j;int num;for (i = p, j = 0; i + j <= r;){if (a[r] >= a[i + j]){num = a[i + j];a[i + j] = a[i];a[i] = num;i++;}elsej++;}return i - 1;}void quickSort(int* a, int start, int end){int index = partition(a, start, end);if (index - 1 > start)quickSort(a, start, index-1);if (index + 1 < end)quickSort(a, index + 1, end);printArr(a, 0, 9);}int main(void){int a[] = { 10, 50, 69, 27, 40, 72, 59, 21, 96, 4 };int i;quickSort(a, 0, 9);printArr(a, 0, 9);}
cs 결과:
반응형