Skip to content

Commit

Permalink
complete ex 5
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Ratiu committed Jan 6, 2020
1 parent ee2d670 commit 5e61d9a
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions solutions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -149,18 +149,33 @@ const f3 = (ar: AR): AR => {

const rand:AR = [15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48, 15, 30, 80, 68, 73, 26, 53, 62, 66, 51, 29, 39, 18, 9, 4, 17, 84, 89, 1, 28, 13, 44, 49, 92, 97, 63, 2, 65, 93, 10, 69, 91, 76, 0, 36, 46, 47, 90, 41, 33, 23, 56, 8, 24, 52, 32, 71, 70, 60, 94, 75, 35, 38, 27, 77, 19, 55, 14, 3, 83, 59, 79, 11, 98, 45, 67, 86, 42, 20, 12, 5, 96, 40, 31, 57, 21, 6, 81, 25, 34, 78, 72, 64, 43, 99, 87, 54, 74, 82, 22, 16, 50, 7, 95, 58, 85, 61, 88, 37, 48];

type ScoreTable = {
name: string,
score: number,
function: Function
};

const getFastest = (score1: ScoreTable, score2: ScoreTable): number => {
return score1.score - score2.score;
}

type Testable = (ar: AR) => AR;
const testFn = (fnArray: Array<Testable>, rand: AR): void => {
const score: { [ key: string ]: number } = {};
const testFn = (fnArray: Array<Testable>, rand: AR): ScoreTable => {
const scoreList: Array<ScoreTable> = [];
fnArray.forEach((fnc: Testable): void => {
const data = [...rand];
const start: number = new Date().getTime() as number;
fnc(data);
const end: number = new Date().getTime() as number;
score[fnc.name] = end - start;
scoreList.push({
name: fnc.name,
score: end - start,
function: fnc
});
});
console.log(score);
console.log(scoreList);
scoreList.sort(getFastest)
return scoreList[0];
};

testFn([f3, f2, f1], rand);
console.log('the winer is:', testFn([f3, f2, f1], rand));

0 comments on commit 5e61d9a

Please sign in to comment.