#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Swap_Me(int *first, int *second)
{
int tmp = *first;
*first = *second;
*second = tmp;
}
void Sort_Quick(int *data, int low, int high)
{
int i = low,
j = high,
x = data[(low + high) / 2];
do
{
while(data[i] < x) i++;
while(data[j] > x) j--;
if(i <= j)
{
Swap_Me(&data[i], &data[j]);
i++;
j--;
}
} while(i <= j);
if(low < j) Sort_Quick(data, low, j);
if(i < high) Sort_Quick(data, i, high);
}
void Array_Print(int *data, int size)
{
for(int i = 0; i < size; i++)
{
printf("[%i]: %i\r\n", i
, data
[i
]); }
}
int Init(int **data)
{
*data
= (int*)malloc(size
* sizeof(int));
for(int i = 0; i < size; i++)
{
}
return size;
}
int main(void)
{
int array_length
= rand(); int *data
= (int*)malloc(array_length
* sizeof(int));
for(int i = 0; i < array_length; i++)
{
}
Array_Print(data, array_length);
Sort_Quick(data, 0, --array_length);
Array_Print(data, array_length);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHRpbWUuaD4KCnZvaWQgU3dhcF9NZShpbnQgKmZpcnN0LCBpbnQgKnNlY29uZCkKewoJaW50IHRtcCA9ICpmaXJzdDsKCSpmaXJzdCA9ICpzZWNvbmQ7Cgkqc2Vjb25kID0gdG1wOwp9Cgp2b2lkIFNvcnRfUXVpY2soaW50ICpkYXRhLCBpbnQgbG93LCBpbnQgaGlnaCkKewoJaW50IGkgPSBsb3csCgkJaiA9IGhpZ2gsCgkJeCA9IGRhdGFbKGxvdyArIGhpZ2gpIC8gMl07CgoJZG8KCXsKCQl3aGlsZShkYXRhW2ldIDwgeCkgaSsrOwoJCXdoaWxlKGRhdGFbal0gPiB4KSBqLS07CgoJCWlmKGkgPD0gaikKCQl7CgkJCVN3YXBfTWUoJmRhdGFbaV0sICZkYXRhW2pdKTsKCQkJaSsrOwoJCQlqLS07CgkJfQoKCX0gd2hpbGUoaSA8PSBqKTsKCglpZihsb3cgPCBqKSBTb3J0X1F1aWNrKGRhdGEsIGxvdywgaik7CglpZihpIDwgaGlnaCkgU29ydF9RdWljayhkYXRhLCBpLCBoaWdoKTsKfQoKdm9pZCBBcnJheV9QcmludChpbnQgKmRhdGEsIGludCBzaXplKQp7Cglmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQoJewoJCXByaW50ZigiWyVpXTogJWlcclxuIiwgaSAsIGRhdGFbaV0pOwoJfQp9CgppbnQgSW5pdChpbnQgKipkYXRhKQp7CglzcmFuZCgodW5zaWduZWQgaW50KXRpbWUoTlVMTCkpOwoKCWludCBzaXplID0gcmFuZCgpOwoJKmRhdGEgPSAoaW50KiltYWxsb2Moc2l6ZSAqIHNpemVvZihpbnQpKTsKCglmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQoJewoJCSpkYXRhW2ldID0gcmFuZCgpOwoJfQoKCXJldHVybiBzaXplOwp9CgppbnQgbWFpbih2b2lkKQp7CglzcmFuZCgodW5zaWduZWQgaW50KXRpbWUoTlVMTCkpOwoJaW50IGFycmF5X2xlbmd0aCA9IHJhbmQoKTsKCWludCAqZGF0YSA9IChpbnQqKW1hbGxvYyhhcnJheV9sZW5ndGggKiBzaXplb2YoaW50KSk7CgoJZm9yKGludCBpID0gMDsgaSA8IGFycmF5X2xlbmd0aDsgaSsrKQoJewoJCWRhdGFbaV0gPSByYW5kKCk7Cgl9CgoJQXJyYXlfUHJpbnQoZGF0YSwgYXJyYXlfbGVuZ3RoKTsKCVNvcnRfUXVpY2soZGF0YSwgMCwgLS1hcnJheV9sZW5ndGgpOwoJQXJyYXlfUHJpbnQoZGF0YSwgYXJyYXlfbGVuZ3RoKTsKCglyZXR1cm4gMDsKfQ==