language: C99 strict (gcc-4.7.2)
date: 272 days 22 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#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)
{
        srand((unsigned int)time(NULL));
 
        int size = rand();
        *data = (int*)malloc(size * sizeof(int));
 
        for(int i = 0; i < size; i++)
        {
                *data[i] = rand();
        }
 
        return size;
}
 
int main(void)
{
        srand((unsigned int)time(NULL));
        int array_length = rand();
        int *data = (int*)malloc(array_length * sizeof(int));
 
        for(int i = 0; i < array_length; i++)
        {
                data[i] = rand();
        }
 
        Array_Print(data, array_length);
        Sort_Quick(data, 0, --array_length);
        Array_Print(data, array_length);
 
        return 0;
}