├── driver.js ├── sample.txt └── searching.js /driver.js: -------------------------------------------------------------------------------- 1 | // const { linearSearch, binarySearch } = require('./searching.js'); 2 | 3 | // console.log(linearSearch); 4 | 5 | const fs = require('fs/promises'); 6 | 7 | async function readSampleFile() { 8 | const data = await fs.readFile('./sample.txt', 'utf-8'); 9 | console.log(data); 10 | } 11 | 12 | async function writeSampleFile() { 13 | await fs.writeFile('./sample.txt', 'Hello World'); 14 | } 15 | 16 | async function appendSampleFile() { 17 | await fs.appendFile('./sample.txt', 'Hello World'); 18 | } 19 | 20 | appendSampleFile(); -------------------------------------------------------------------------------- /sample.txt: -------------------------------------------------------------------------------- 1 | Hello WorldHello World -------------------------------------------------------------------------------- /searching.js: -------------------------------------------------------------------------------- 1 | function linearSearch(arr, val) { 2 | for (let i = 0; i < arr.length; i++) { 3 | if (arr[i] === val) return i; 4 | } 5 | return -1; 6 | } 7 | 8 | function binarySearch(arr, val) { 9 | let left = 0; 10 | let right = arr.length - 1; 11 | let middle = Math.floor((left + right) / 2); 12 | while (arr[middle] !== val && left <= right) { 13 | if (val < arr[middle]) right = middle - 1; 14 | else left = middle + 1; 15 | middle = Math.floor((left + right) / 2); 16 | } 17 | return arr[middle] === val ? middle : -1; 18 | } 19 | 20 | module.exports = { 21 | linearSearch, 22 | binarySearch 23 | } --------------------------------------------------------------------------------