diff --git a/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/package.json b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/package.json new file mode 100644 index 0000000..12619ec --- /dev/null +++ b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/package.json @@ -0,0 +1,18 @@ +{ + "name": "complexidade-algoritmos", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "linear": "clear && tsnd --transpile-only --ignore-watch node_modules ./src/linear", + "polynomial": "clear && tsnd --transpile-only --ignore-watch node_modules ./src/polynomial", + "logarithmic": "clear && tsnd --transpile-only --ignore-watch node_modules ./src/logarithmic", + "exponential": "clear && tsnd --transpile-only --ignore-watch node_modules ./src/exponential" + }, + "author": "Labenu", + "license": "ISC", + "devDependencies": { + "@types/node": "^15.3.0", + "ts-node-dev": "^1.1.6", + "typescript": "^4.2.4" + } +} diff --git a/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/exponential/index.ts b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/exponential/index.ts new file mode 100644 index 0000000..b7f96c1 --- /dev/null +++ b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/exponential/index.ts @@ -0,0 +1,15 @@ +import { login } from "./login" + +const crackPassword = ( + passwordLength: number +) => { + + for (let i = 0; i < 10 ** passwordLength; i++) { + console.count() + + const token = login(i) + if (token) return token + } +} + +crackPassword(4) \ No newline at end of file diff --git a/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/exponential/login.ts b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/exponential/login.ts new file mode 100644 index 0000000..c8d3593 --- /dev/null +++ b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/exponential/login.ts @@ -0,0 +1,5 @@ +export const login = ( + password: number +) => password === 12345678 + ? "token" + : undefined \ No newline at end of file diff --git a/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/linear/index.ts b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/linear/index.ts new file mode 100644 index 0000000..6268e87 --- /dev/null +++ b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/linear/index.ts @@ -0,0 +1,7 @@ +const printUntil = (n: number) => { + for (let i = 0; i < n; i++) { + console.log({ i }) + } +} + +printUntil(100) \ No newline at end of file diff --git a/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/logarithmic/index.ts b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/logarithmic/index.ts new file mode 100644 index 0000000..14cf43f --- /dev/null +++ b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/logarithmic/index.ts @@ -0,0 +1,26 @@ +const binarySearch = (arr: number[], n: number) => { + + let start = 0, end = arr.length - 1; + + while (start <= end) { + console.count(); + + let mid = Math.floor((start + end) / 2); + + if (arr[mid] === n) return n; + + else if (arr[mid] < n) + start = mid + 1; + else + end = mid - 1; + } +} + +const item = binarySearch( + [ + 1, 2, 3, 4, 5, 6, 7, 8, + ], + 9 +) + +console.log(item); \ No newline at end of file diff --git a/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/polynomial/index.ts b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/polynomial/index.ts new file mode 100644 index 0000000..e7d1625 --- /dev/null +++ b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/src/polynomial/index.ts @@ -0,0 +1,20 @@ +const insertionSort = (array: number[]) => { + + for (let j = 1; j < array.length; j++) { + const value = array[j]; + let i = j - 1; + while (i >= 0 && array[i] >= value) { + array[i + 1] = array[i]; + i--; + } + array[i + 1] = value + } +}; + +const numbers = [ + 8, 7, 6, 5, 4, 3, 2, 1, +] + +insertionSort(numbers) + +console.log(numbers); diff --git a/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/tsconfig.json b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/tsconfig.json new file mode 100644 index 0000000..f9701d4 --- /dev/null +++ b/Back-end/modulo2/MODULO3/complexidade-de-algoritmos/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "sourceMap": true, + "outDir": "./build", + "rootDir": "./src", + "removeComments": true, + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + } +} \ No newline at end of file diff --git a/Back-end/modulo2/MODULO3/testes-backend/.rest b/Back-end/modulo2/MODULO3/testes-backend/.rest new file mode 100644 index 0000000..145d378 --- /dev/null +++ b/Back-end/modulo2/MODULO3/testes-backend/.rest @@ -0,0 +1,21 @@ +### CADASTRO + +POST http://localhost:3003/users/signup +Content-Type: application/json + +{ + "name": "Alice", + "email": "alice@lbn.com", + "password": "123456", + "role":"ADMIN" +} + +### LOGIN + +POST http://localhost:3003/users/login +Content-Type: application/json + +{ + "email": "alice@lbn.com", + "password": "123456" +} \ No newline at end of file diff --git a/Back-end/modulo2/MODULO3/testes-backend/.vscode/launch.json b/Back-end/modulo2/MODULO3/testes-backend/.vscode/launch.json new file mode 100644 index 0000000..2068be4 --- /dev/null +++ b/Back-end/modulo2/MODULO3/testes-backend/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Launch Program", + "skipFiles": [ + "/**" + ], + "program": "${workspaceFolder}/build/src/index.js", + "outFiles": [ + "${workspaceFolder}/**/*.js" + ] + } + ] +} \ No newline at end of file