Mercurial > public > algo-animator
annotate src/algorithms.c @ 29:dae463bbf5ca
implementing multi-thread and refactoring
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Wed, 28 Jun 2023 20:10:55 +0100 |
parents | |
children | f945bcc3571f |
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 |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
4 void *bubble_sort(void *arguments) { |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
5 struct AlgoArgs *args = (struct AlgoArgs *)arguments; |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
6 |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
7 printf("Size: %i\n", args->arr_size); |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
8 printf("Comparisons: %i\n", args->comparisons); |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
9 (args->comparisons)++; |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
10 printf("Comparisons: %i\n", args->comparisons); |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
11 /* |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
12 for (int i = 0; i < args->arr_size - 1; i++) { |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
13 //(*args->comparisons)++; |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
14 |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
15 for (int j = 0; j < args->arr_size - i - 1; j++) { |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
16 //(*args->comparisons)++; |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
17 |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
18 if (args->arr[j].value > args->arr[j + 1].value) { |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
19 //swap_elements(j, j + 1, args->arr); |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
20 } |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
21 |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
22 |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
23 //usleep((*args->delay)); |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
24 //bool test = false; |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
25 //delay_flow(args->delay, &test); |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
26 } |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
27 } |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
28 */ |
dae463bbf5ca
implementing multi-thread and refactoring
Dennis C. M. <dennis@denniscm.com>
parents:
diff
changeset
|
29 } |