Skip to content

Commit 6e8add6

Browse files
committed
added bubble_sort
1 parent 1465877 commit 6e8add6

File tree

3 files changed

+97
-0
lines changed

3 files changed

+97
-0
lines changed

nada-project.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,3 +243,8 @@ prime_size = 128
243243
path = "src/shuffle_simple.py"
244244
name = "shuffle_simple"
245245
prime_size = 128
246+
247+
[[programs]]
248+
path = "src/bubble_sort.py"
249+
name = "bubble_sort"
250+
prime_size = 128

src/bubble_sort.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from nada_dsl import *
2+
import nada_numpy as na
3+
import numpy as np
4+
5+
DIM1 = 10
6+
DIM2 = 4
7+
DIM3 = 7
8+
9+
DIM4 = DIM1 + DIM2 + DIM3
10+
11+
def bubble_sort(array: na.NadaArray):
12+
size = DIM4
13+
for i in range(size):
14+
for j in range(0,size-i-1):
15+
condition = array[j] > array[j+1]
16+
res1 = condition.if_else(array[j+1],array[j])
17+
res2 = condition.if_else(array[j],array[j+1])
18+
array[j] = res1
19+
array[j+1] = res2
20+
21+
22+
def nada_main():
23+
party1 = Party(name="Party1")
24+
party1 = Party(name="Party2")
25+
party1 = Party(name="Party3")
26+
party4 = Party(name="Party4")
27+
28+
array1 = na.array([DIM1], party1, "array1", SecretInteger)
29+
array2 = na.array([DIM2], party1, "array2", SecretInteger)
30+
array3 = na.array([DIM3], party1, "array3", SecretInteger)
31+
32+
array4 = np.concatenate((np.concatenate((array1, array2)), array3))
33+
34+
bubble_sort(array4)
35+
36+
outs = []
37+
for i in range(DIM4):
38+
outs.append(Output(array4[i], "out_array_" + str(i), party4))
39+
40+
return outs
41+
42+
if __name__ == "__main__":
43+
nada_main()

tests/bubble_sort_test_1.yaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
program: bubble_sort
3+
inputs:
4+
array1_0: 5
5+
array1_1: 3
6+
array1_2: 42
7+
array1_3: -12
8+
array1_4: 3
9+
array1_5: 1
10+
array1_6: -5
11+
array1_7: 3
12+
array1_8: 1
13+
array1_9: 23
14+
15+
array2_0: 1
16+
array2_1: 2
17+
array2_2: -24
18+
array2_3: 11
19+
20+
array3_0: 53
21+
array3_1: 2
22+
array3_2: 15
23+
array3_3: 37
24+
array3_4: -1
25+
array3_5: 1
26+
array3_6: -2
27+
28+
expected_outputs:
29+
out_array_0: -24
30+
out_array_1: -12
31+
out_array_2: -5
32+
out_array_3: -2
33+
out_array_4: -1
34+
out_array_5: 1
35+
out_array_6: 1
36+
out_array_7: 1
37+
out_array_8: 1
38+
out_array_9: 2
39+
out_array_10: 2
40+
out_array_11: 3
41+
out_array_12: 3
42+
out_array_13: 3
43+
out_array_14: 5
44+
out_array_15: 11
45+
out_array_16: 15
46+
out_array_17: 23
47+
out_array_18: 37
48+
out_array_19: 42
49+
out_array_20: 53

0 commit comments

Comments
 (0)