백준/백준-C

1427번: 소트인사이드

Beabletoet 2017. 5. 5. 14:54

#include <stdio.h>

void quick(int arr[], int left, int right)

{

int l = left, r = right, pivot = arr[(left + right) / 2], temp;

do

{

while (arr[l] < pivot) ++l;

while (arr[r] > pivot) --r;

if (l <= r)

{

temp = arr[l];

arr[l] = arr[r];

arr[r] = temp;

++l;

--r;

}

} while (l <= r);

if (left < r) quick(arr, left, r);

if (l < right) quick(arr, l, right);

}

int main()

{

int N, num[10], bool_start = 0;

scanf("%d", &N);

for (int j = 1000000000, i = 0; i < 10; j /= 10, ++i)

{

num[i] = (N / j) % 10;

if (!bool_start)

if (num[i] != 0)

bool_start = i;

}

quick(num, bool_start, 9);

for (int i = 9; i >= bool_start; --i)

printf("%d", num[i]);

}