Mercurial > public > algo-animator
annotate src/algorithms.c @ 38:8ed1256dd518
finish quick sort and add insertion sort
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Fri, 30 Jun 2023 19:25:38 +0100 |
parents | 61104b22a25d |
children | b656ed2e8957 |
rev | line source |
---|---|
29
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
1 #include "algorithms.h" |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
2 |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
3 |
30 | 4 /* Bubble sort */ |
5 | |
29
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
6 void *bubble_sort(void *arguments) { |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
7 struct AlgoArgs *args = (struct AlgoArgs *)arguments; |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
8 |
30 | 9 for (int step = 0; step < args->arr_size - 1; step++) { |
10 int swapped = false; | |
11 | |
12 for (int i = 0; i < args->arr_size - step - 1; i++) { | |
13 args->comparisons++; | |
14 args->arr[i].current = true; | |
15 args->arr[i + 1].current = true; | |
29
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
16 |
30 | 17 if (args->arr[i].value > args->arr[i + 1].value) { |
18 swap_elements(i, i + 1, args->arr); | |
19 swapped = true; | |
29
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
20 } |
30 | 21 |
22 control_flow(args->delay, args->sequentially, &args->pause); | |
23 args->arr[i].current = false; | |
24 args->arr[i + 1].current = false; | |
25 } | |
26 | |
27 if (swapped == 0) { | |
28 break; | |
29
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
29 } |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
30 } |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
31 } |
30 | 32 |
33 | |
34 /* Selection sort */ | |
35 | |
36 void *selection_sort(void *arguments) { | |
37 struct AlgoArgs *args = (struct AlgoArgs *)arguments; | |
38 | |
39 for (int step = 0; step < args->arr_size - 1; step++) { | |
40 int min_idx = step; | |
41 | |
42 for (int i = step + 1; i < args->arr_size; i++) { | |
43 args->comparisons++; | |
44 args->arr[i].current = true; | |
31
61104b22a25d
I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents:
30
diff
changeset
|
45 args->arr[min_idx].current = true; |
61104b22a25d
I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents:
30
diff
changeset
|
46 |
61104b22a25d
I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents:
30
diff
changeset
|
47 control_flow(args->delay, args->sequentially, &args->pause); |
61104b22a25d
I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents:
30
diff
changeset
|
48 args->arr[i].current = false; |
61104b22a25d
I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents:
30
diff
changeset
|
49 args->arr[min_idx].current = false; |
30 | 50 |
51 if (args->arr[i].value < args->arr[min_idx].value) { | |
52 min_idx = i; | |
53 } | |
54 | |
55 } | |
56 | |
57 swap_elements(min_idx, step, args->arr); | |
58 } | |
59 } | |
60 | |
61 | |
62 /* Quick sort */ | |
63 | |
38
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
64 int qs_partition(struct AlgoArgs *args, int left, int right) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
65 printf("Pivot index: %i\n", right); |
30 | 66 |
38
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
67 args->arr[right].current = true; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
68 float pivot = args->arr[right].value; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
69 control_flow(args->delay / 4, args->sequentially, &args->pause); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
70 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
71 int i = left - 1; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
72 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
73 for (int j = left; j < right; j++) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
74 args->comparisons++; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
75 args->arr[j].current = true; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
76 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
77 control_flow(args->delay / 4, args->sequentially, &args->pause); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
78 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
79 if (args->arr[j].value < pivot) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
80 printf("Value at index %i is smaller than pivot\n", j); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
81 i++; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
82 printf("Swap with value at index %i\n", i); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
83 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
84 args->arr[i].current = true; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
85 control_flow(args->delay / 4, args->sequentially, &args->pause); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
86 args->arr[j].current = false; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
87 args->arr[i].current = false; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
88 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
89 struct Element temp = args->arr[i]; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
90 swap_elements(i, j, args->arr); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
91 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
92 } else { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
93 args->arr[j].current = false; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
94 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
95 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
96 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
97 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
98 printf("Swap pivot with value at index %i\n", i + 1); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
99 args->arr[i + 1].current = true; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
100 control_flow(args->delay / 4, args->sequentially, &args->pause); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
101 args->arr[right].current = false; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
102 args->arr[i + 1].current = false; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
103 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
104 struct Element temp = args->arr[i + 1]; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
105 swap_elements(i + 1, right, args->arr); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
106 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
107 printf("Finished partition\n"); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
108 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
109 return i + 1; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
110 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
111 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
112 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
113 void *quick_sort(void *arguments) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
114 struct AlgoArgs *args = (struct AlgoArgs *)arguments; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
115 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
116 int left = 0; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
117 int right = args->arr_size - 1; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
118 int stack[right + 1 - left]; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
119 int top = -1; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
120 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
121 stack[++top] = left; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
122 stack[++top] = right; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
123 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
124 while (top >= 0) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
125 right = stack[top--]; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
126 left = stack[top--]; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
127 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
128 int pivot_index = qs_partition(args, left, right); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
129 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
130 if (pivot_index - 1 > left) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
131 stack[++top] = left; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
132 stack[++top] = pivot_index - 1; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
133 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
134 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
135 if (pivot_index + 1 < right) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
136 stack[++top] = pivot_index + 1; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
137 stack[++top] = right; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
138 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
139 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
140 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
141 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
142 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
143 /* Insertion sort */ |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
144 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
145 void *insertion_sort(void *arguments) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
146 struct AlgoArgs *args = (struct AlgoArgs *)arguments; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
147 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
148 for (int step = 1; step < args->arr_size; step++) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
149 struct Element key = args->arr[step]; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
150 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
151 printf("Selected key at index: %i\n", step); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
152 args->arr[step].current = true; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
153 control_flow(args->delay / 3, args->sequentially, &args->pause); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
154 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
155 int i = step - 1; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
156 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
157 while (key.value < args->arr[i].value && i >= 0) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
158 args->comparisons++; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
159 printf("Key value is smaller than value at index %i\n", i); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
160 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
161 args->arr[i].current = true; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
162 args->arr[i + 1].value = 0; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
163 control_flow(args->delay / 3, args->sequentially, &args->pause); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
164 args->arr[i].current = false; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
165 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
166 printf("Move foward\n"); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
167 args->arr[i + 1] = args->arr[i]; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
168 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
169 i--; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
170 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
171 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
172 printf("Place key at correct position\n"); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
173 args->arr[i + 1] = key; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
174 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
175 args->arr[i + 1].current = true; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
176 control_flow(args->delay / 3, args->sequentially, &args->pause); |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
177 args->arr[i + 1].current = false; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
178 args->arr[step].current = false; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
179 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
180 } |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
181 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
182 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
183 /* Merge sort */ |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
184 |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
185 void *merge_sort(void *arguments) { |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
186 struct AlgoArgs *args = (struct AlgoArgs *)arguments; |
8ed1256dd518
finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents:
31
diff
changeset
|
187 } |