gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
expanded sample size, first version
[mjc2wsl.git] / samples / alpha-mj-exp / QuickSort.mj
1 program QuickSort {
2 int[] load()
3 int[] res;
4 int c,num,in; {
5 print('l');
6 print('?');
7 read(num);
8 res = new int[num];
9 c = 0;
10 while (c<num) {
11 print(c);
12 print('?');
13 read(in);
14 res[c] = in;
15 c++;
16 }
17 return res;
18 }
20 void printar(int[] arr)
21 int c;
22 {
23 c = 0;
24 while (c < len(arr)) {
25 print(arr[c]);
26 print(' ');
27 c++;
28 }
29 print(chr(10));
30 }
32 int partition(int[] arr, int low, int high)
33 int pivot, i, j, temp;
34 {
35 pivot = arr[high];
36 i = low - 1;
37 j = low;
39 while (j < high) {
40 if (arr[j] < pivot) {
41 i++;
43 temp = arr[i];
44 arr[i] = arr[j];
45 arr[j] = temp;
46 }
47 j++;
48 }
50 temp = arr[i+1];
51 arr[i+1] = arr[high];
52 arr[high] = temp;
54 return i + 1;
55 }
57 void sort(int[] arr, int low, int high)
58 int p;
59 {
60 if (low < high) {
61 p = partition(arr, low, high);
63 sort(arr, low, p-1);
64 sort(arr, p+1, high);
65 }
66 }
68 void main()
69 int[] arr;
70 {
71 arr = load();
72 printar(arr);
73 sort(arr, 0, len(arr) - 1);
74 printar(arr);
75 }
76 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner