1556
Comment:
|
7749
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
#acl Claudius Korzen:read,write All:read |
#acl All:read,write |
Line 4: | Line 3: |
Add your row to the table below, following the examples already there. In the 1st column, write your account name, or name1+name2 if you work in a group. In the 2nd and 3rd column, write down the average runtime of the baseline algorithm and your improved algorithm on your machine, in '''micro'''seconds as an integer. As mentioned in the lecture, repeat each measurement '''5 times''' and take the average. In the columns 4-6, write down the speedup ratios as floats with '''exactly two digits of precision''', measured as time_for_baseline / time_for_your_version (<1 = slower, >1 = faster). In the columns 7+8, give details about your programming language and your machine specifications. In the last column '''briefly''' describe the improvements you implemented. || |||| ''Average Runtime (in µs)'' |||||| ''Speedup ratio'' |||| || || ||'''Name''' || '''Baseline''' || '''Your version''' || '''existence + bielefeld''' ||'''them + bielefeld'''||'''them + existence'''||'''Language'''||'''Machine Spec'''||'''Implementation Summary'''|| || ck1028 || ? || ? || 0.00 || 0.00 || 0.00 || Java || ? || ? || || ck1028 || ? || ? || 0.00 || 0.00 || 0.00 || C++ || ? || ? || |
Add your row to the table below, following the examples already there. In the 1st column, write your account name, or name1+name2 if you work in a group. For each intersection result, write down (1) the runtime of the baseline algorithm, (2) the runtime of your improved algorithm (both in '''micro'''seconds as an integer) and (3) the speedup ratio as float with '''exactly two digits of precision''', measured as time_for_baseline / time_for_your_algorithm (<1 = slower, >1 = faster). In the last column '''briefly''' describe the improvements you implemented. || ||||||''film + rug'' ||||||''bowling + rug'' ||||||''film + bowling'' |||||| || ||'''Name''' ||'''Baseline''' ||'''Yours''' ||'''Ratio''' ||'''Baseline''' ||'''Yours''' ||'''Ratio''' ||'''Baseline''' ||'''Yours''' ||'''Ratio''' ||'''Language''' ||'''Summary Improvements''' || ||ck1028 || 8570µs || 3298µs || 2.59 || 545µs || 520µs || 1.05 || 12920µs || 8796µs || 1.46 || Java ||Combination of zipper algorithm & binary search in remainder of longer list; sentinels. || ||ck1028 || 1767µs || 260µs || 6.79 || 116µs || 65µs || 1.78 || 1898µs || 1784µs || 1.06 || C++ ||Combination of zipper algorithm & galloping search; sentinels. || ||he41 || 8957µs || 1446µs || 6.19 || 2631µs || 1575µs || 1.67 || 8184µs || 1465µs || 5.59 || Java ||Combination of zipper algorithm & galloping search; sentinels; Bitwise Operations. || ||ma269 || 1332µs || 566µs || 2.35 || 122µs || 52µs || 2.32 || 1901µs || 1538µs || 1.24 || C++ ||Log(n)-step baseline or galloping search with sentinels. || ||cb382 + mz111 || 5428µs || 1487µs || 3.65 || 1687µs || 803µs || 2.10 || 4842µs || 2992µs || 1.62 || Java ||Combination of zipper with sentinels & galloping search || ||yl100 || 1381µs || 483µs || 2.86 || 141µs || 66µs || 2.14 || 2061µs || 1943µs || 1.06 || C++ ||Combination of zipper ,sentinels, and galloping search || ||fk234 || 1896µs || 466µs || 4.07 || 146µs || 91µs || 1.60 || 2127µs || 1670µs || 1.27 || C++ ||Zipper algorithm with sentinels and galloping search || ||pk104 || 1293µs || 355µs || 3.65 || 95µs || 50µs || 1.87 || 1514µs || 1318µs || 1.14 || C++ ||galloping search || ||pg152 || 12301µs || 3078µs || 3.99 || 4777µs || 1334µs || 3.58 || 17024µs || 11518µs || 1.47 || Java ||Binsearch at beginning, Galloping at end || ||dd74 || 1631µs || 575µs || 2.84 || 144µs || 143µs || 1.01 || 1785µs || 1951µs || 0.91 || C++ ||Zipper algorithm with sentinels, binary search || ||je113 || 1124µs || 497µs || 2.26 || 90µs || 89µs || 1.01 || 2049µs || 1872µs || 1.09 || Java ||Skip pointers with sentinels || ||ck407 || 2102µs || 1168µs || 1.80 || 1447µs || 1098µs || 1.32 || 30959µs || 28967µs || 1.07 || Java ||Combination of zipper with sentinels and galloping search. || ||sm362 || 1549µs || 432µs || 3.58 || 127µs || 81µs || 1.57 || 1854µs || 1831µs || 1.01 || C++ ||Combination of zipper algorithm & galloping search || ||ak745 || 6060µs || 1026µs || 5.91 || 1893µs || 790µs || 2.40 || 6292µs || 5245µs || 1.20 || Java ||Combination of Galloping search and binary search. || ||yb36 || 1374µs || 227µs || 6.03 || 133µs || 38µs || 3.47 || 1443µs || 1271µs || 1.14 || C++ ||Zipper + Galloping search + Binary search + Sentinels || ||ph193 || 1249µs || 541µs || 2.30 || 81µs || 39µs || 2.06 || 1725µs || 1589µs || 1.09 || C++ ||Combination of galloping search with zipper algorithm; sentinels || ||sr285 || 969µs || 587µs || 1.65 || 255µs || 118µs || 2.16 || 4866µs || 1533µs || 3.17 || Java ||Combination of Sentinels, Binary and Galloping || ||fb234 || 11562µs || 2570µs || 4.50 || 1103µs || 535µs || 2.06 || 17199µs || 9772µs || 1.76 || Java ||Skip pointers in remainder || ||hn52 || 5996µs || 4235µs || 1.42 || 6178µs || 4319µs || 1.43 || 2990µs || 2997µs || 1.00 || C++ ||Zipper with sentinels and galloping search || ||es260 + ic30 || 1067µs || 262µs || 4.07 || 85µs || 104µs || 0.82 || 1293µs || 5086µs || 0.25 || C++||Combination of galloping, binary and sentinel|| ||js603 || 1551µs || 350µs || 4.43 || 106µs || 92µs || 1.15 || 1385µs || 1274µs || 1.09 || C++||Combination of galloping / binary search and baseline|| ||hs211+lb319 || 1816µs || 591µs || 3.07 || 123µs || 66µs || 1.86 || 1911µs || 2272µs || 0.84 || C++||Combination of galloping search, predictable branches and remove of redundant initialization|| ||rb201 || 25315µs || 9240µs || 2.74 || 10713µs || 7272µs || 1.47 || 28211µs || 27367µs || 1.03 || Java||Zipper + Galloping search + Binary search + Sentinels (yes my hardware is old)|| ||ls305 || 8931µs || 7499µs || 1.19 || 4270µs || 739µs || 5.77 || 12293µs || 7353µs || 1.67 || Java||Zipper + Sentinels or Galloping|| ||ns202 || 1421µs || 351µs || 4.04 || 103µs || 140µs || 0.73 || 1434µs || 2380µs || 0.60 || C++||Galloping|| ||nf55 || 1149µs || 201µs || 5.70 || 68µs || 25µs || 2.67 || 1254µs || 1068µs || 1.17 || C++ ||Combining Zipper, Galloping search and Binary search || ||fj47 || 4841µs || 831µs || 5.82 || 1948µs || 1384µs || 1.41 || 4395µs || 6061µs || 0.89 || Java ||Switch between Zipper, binary on rest or Galopping. Use Sentinels || ||df121+km109 || 7352µs || 4937µs || 1.49 || 3445µs || 2895µs || 1.19 || 7227µs || 22216µs || 0.33 || Java ||Galloping search, skip pointers and Binary search || ||cs568 || 10457µs || 4071µs || 2.57 || 824µs || 1884µs || 0.44 || 11487µs || 51787µs|| 0.22 || C++ ||Galloping and binary search in interval|| ||bb245 || 1066µs || 369µs || 2.89 || 150µs || 125µs || 1.20 || 1322µs || 1862µs || 0.71 || C++ ||Galloping search|| ||mk813 || 1806µs || 256µs || 7.05 || 128µs || 56µs || 2.29 || 1935µs || 2027µs || 0.95 || C++ ||Galloping search|| |
Results for Exercise Sheet 3 (Intersecting Lists)
Add your row to the table below, following the examples already there. In the 1st column, write your account name, or name1+name2 if you work in a group. For each intersection result, write down (1) the runtime of the baseline algorithm, (2) the runtime of your improved algorithm (both in microseconds as an integer) and (3) the speedup ratio as float with exactly two digits of precision, measured as time_for_baseline / time_for_your_algorithm (<1 = slower, >1 = faster). In the last column briefly describe the improvements you implemented.
|
film + rug |
bowling + rug |
film + bowling |
|
||||||||
Name |
Baseline |
Yours |
Ratio |
Baseline |
Yours |
Ratio |
Baseline |
Yours |
Ratio |
Language |
Summary Improvements |
|
ck1028 |
8570µs |
3298µs |
2.59 |
545µs |
520µs |
1.05 |
12920µs |
8796µs |
1.46 |
Java |
Combination of zipper algorithm & binary search in remainder of longer list; sentinels. |
|
ck1028 |
1767µs |
260µs |
6.79 |
116µs |
65µs |
1.78 |
1898µs |
1784µs |
1.06 |
C++ |
Combination of zipper algorithm & galloping search; sentinels. |
|
he41 |
8957µs |
1446µs |
6.19 |
2631µs |
1575µs |
1.67 |
8184µs |
1465µs |
5.59 |
Java |
Combination of zipper algorithm & galloping search; sentinels; Bitwise Operations. |
|
ma269 |
1332µs |
566µs |
2.35 |
122µs |
52µs |
2.32 |
1901µs |
1538µs |
1.24 |
C++ |
Log(n)-step baseline or galloping search with sentinels. |
|
cb382 + mz111 |
5428µs |
1487µs |
3.65 |
1687µs |
803µs |
2.10 |
4842µs |
2992µs |
1.62 |
Java |
Combination of zipper with sentinels & galloping search |
|
yl100 |
1381µs |
483µs |
2.86 |
141µs |
66µs |
2.14 |
2061µs |
1943µs |
1.06 |
C++ |
Combination of zipper ,sentinels, and galloping search |
|
fk234 |
1896µs |
466µs |
4.07 |
146µs |
91µs |
1.60 |
2127µs |
1670µs |
1.27 |
C++ |
Zipper algorithm with sentinels and galloping search |
|
pk104 |
1293µs |
355µs |
3.65 |
95µs |
50µs |
1.87 |
1514µs |
1318µs |
1.14 |
C++ |
galloping search |
|
pg152 |
12301µs |
3078µs |
3.99 |
4777µs |
1334µs |
3.58 |
17024µs |
11518µs |
1.47 |
Java |
Binsearch at beginning, Galloping at end |
|
dd74 |
1631µs |
575µs |
2.84 |
144µs |
143µs |
1.01 |
1785µs |
1951µs |
0.91 |
C++ |
Zipper algorithm with sentinels, binary search |
|
je113 |
1124µs |
497µs |
2.26 |
90µs |
89µs |
1.01 |
2049µs |
1872µs |
1.09 |
Java |
Skip pointers with sentinels |
|
ck407 |
2102µs |
1168µs |
1.80 |
1447µs |
1098µs |
1.32 |
30959µs |
28967µs |
1.07 |
Java |
Combination of zipper with sentinels and galloping search. |
|
sm362 |
1549µs |
432µs |
3.58 |
127µs |
81µs |
1.57 |
1854µs |
1831µs |
1.01 |
C++ |
Combination of zipper algorithm & galloping search |
|
ak745 |
6060µs |
1026µs |
5.91 |
1893µs |
790µs |
2.40 |
6292µs |
5245µs |
1.20 |
Java |
Combination of Galloping search and binary search. |
|
yb36 |
1374µs |
227µs |
6.03 |
133µs |
38µs |
3.47 |
1443µs |
1271µs |
1.14 |
C++ |
Zipper + Galloping search + Binary search + Sentinels |
|
ph193 |
1249µs |
541µs |
2.30 |
81µs |
39µs |
2.06 |
1725µs |
1589µs |
1.09 |
C++ |
Combination of galloping search with zipper algorithm; sentinels |
|
sr285 |
969µs |
587µs |
1.65 |
255µs |
118µs |
2.16 |
4866µs |
1533µs |
3.17 |
Java |
Combination of Sentinels, Binary and Galloping |
|
fb234 |
11562µs |
2570µs |
4.50 |
1103µs |
535µs |
2.06 |
17199µs |
9772µs |
1.76 |
Java |
Skip pointers in remainder |
|
hn52 |
5996µs |
4235µs |
1.42 |
6178µs |
4319µs |
1.43 |
2990µs |
2997µs |
1.00 |
C++ |
Zipper with sentinels and galloping search |
|
es260 + ic30 |
1067µs |
262µs |
4.07 |
85µs |
104µs |
0.82 |
1293µs |
5086µs |
0.25 |
C++ |
Combination of galloping, binary and sentinel |
|
js603 |
1551µs |
350µs |
4.43 |
106µs |
92µs |
1.15 |
1385µs |
1274µs |
1.09 |
C++ |
Combination of galloping / binary search and baseline |
|
hs211+lb319 |
1816µs |
591µs |
3.07 |
123µs |
66µs |
1.86 |
1911µs |
2272µs |
0.84 |
C++ |
Combination of galloping search, predictable branches and remove of redundant initialization |
|
rb201 |
25315µs |
9240µs |
2.74 |
10713µs |
7272µs |
1.47 |
28211µs |
27367µs |
1.03 |
Java |
Zipper + Galloping search + Binary search + Sentinels (yes my hardware is old) |
|
ls305 |
8931µs |
7499µs |
1.19 |
4270µs |
739µs |
5.77 |
12293µs |
7353µs |
1.67 |
Java |
Zipper + Sentinels or Galloping |
|
ns202 |
1421µs |
351µs |
4.04 |
103µs |
140µs |
0.73 |
1434µs |
2380µs |
0.60 |
C++ |
Galloping |
|
nf55 |
1149µs |
201µs |
5.70 |
68µs |
25µs |
2.67 |
1254µs |
1068µs |
1.17 |
C++ |
Combining Zipper, Galloping search and Binary search |
|
fj47 |
4841µs |
831µs |
5.82 |
1948µs |
1384µs |
1.41 |
4395µs |
6061µs |
0.89 |
Java |
Switch between Zipper, binary on rest or Galopping. Use Sentinels |
|
df121+km109 |
7352µs |
4937µs |
1.49 |
3445µs |
2895µs |
1.19 |
7227µs |
22216µs |
0.33 |
Java |
Galloping search, skip pointers and Binary search |
|
cs568 |
10457µs |
4071µs |
2.57 |
824µs |
1884µs |
0.44 |
11487µs |
51787µs |
0.22 |
C++ |
Galloping and binary search in interval |
|
bb245 |
1066µs |
369µs |
2.89 |
150µs |
125µs |
1.20 |
1322µs |
1862µs |
0.71 |
C++ |
Galloping search |
|
mk813 |
1806µs |
256µs |
7.05 |
128µs |
56µs |
2.29 |
1935µs |
2027µs |
0.95 |
C++ |
Galloping search |