Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anower77/data-structures-algorithm-dsa-
Data structures are formats for organizing and storing data, like arrays, linked lists, trees, and graphs. Algorithms are systematic instructions for performing tasks, such as sorting and searching. These structures and algorithms are integral to computing, enhancing data manipulation.
https://github.com/anower77/data-structures-algorithm-dsa-
algorithms-and-data-structures analysis binary-search bubble-sort charcounter dsa dsa-algorithm linear-programming linearsearch logarithm
Last synced: 7 days ago
JSON representation
Data structures are formats for organizing and storing data, like arrays, linked lists, trees, and graphs. Algorithms are systematic instructions for performing tasks, such as sorting and searching. These structures and algorithms are integral to computing, enhancing data manipulation.
- Host: GitHub
- URL: https://github.com/anower77/data-structures-algorithm-dsa-
- Owner: Anower77
- Created: 2023-08-16T11:36:14.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-08-16T13:13:50.000Z (over 1 year ago)
- Last Synced: 2023-08-16T15:37:28.985Z (over 1 year ago)
- Topics: algorithms-and-data-structures, analysis, binary-search, bubble-sort, charcounter, dsa, dsa-algorithm, linear-programming, linearsearch, logarithm
- Language: JavaScript
- Homepage:
- Size: 596 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Minimum & Maximum (DSA)
```javascript
function min5Log(n){
for(let i = 0; i <= Math.min(5, n); i++){
console.log(i)
}
}
// min5Log(90000000000000)// maximum
function max5Log(n){
for(let i = 0; i <= Math.max(10, n); i++){
console.log(i)
}
}max5Log(-1)
```
## Visualization (min&max)[Visualize code](https://pythontutor.com/render.html#code=function%20min5Log%28n%29%7B%0A%20%20%20%20for%28let%20i%20%3D%200%3B%20i%20%3C%3D%20Math.min%285,%20n%29%3B%20i%2B%2B%29%7B%0A%20%20%20%20%20%20%20%20console.log%28i%29%0A%20%20%20%20%7D%0A%7D%0A//%20min5Log%2890000000000000%29%0A%0A//%20maximum%0Afunction%20max5Log%28n%29%7B%0A%20%20%20%20for%28let%20i%20%3D%200%3B%20i%20%3C%3D%20Math.max%2810,%20n%29%3B%20i%2B%2B%29%7B%0A%20%20%20%20%20%20%20%20console.log%28i%29%0A%20%20%20%20%7D%0A%7D%0A%0Amax5Log%28-1%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)
## Sum Of Array (DSA)
```javascript
// space complexity o(1), o(n)function sumOfArray(arr){
total = 0
for(let i = 0; i < arr.length; i++){
total = arr[i]
}
return total
}// console.log(sumOfArray([25, 25, 50]))
// another example
function sumOfArray(arr){
newArr = []
for(let i = 0; i < arr.length; i++){
newArr.push(arr[i] *2)
}
return newArr
}console.log(sumOfArray([25, 25, 50]))
```
## Visualization (sumOfArray)[Visualize code -(sumOfArray)](https://pythontutor.com/render.html#code=//%20space%20complexity%20o%281%29,%20o%28n%29%0A%0Afunction%20sumOfArray%28arr%29%7B%0A%20%20%20%20total%20%3D%200%0A%20%20%20%20for%28let%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i%2B%2B%29%7B%0A%20%20%20%20%20%20%20%20total%20%3D%20arr%5Bi%5D%0A%20%20%20%20%7D%0A%20%20%20%20return%20total%0A%7D%0A%0A//%20console.log%28sumOfArray%28%5B25,%2025,%2050%5D%29%29%0A%0A%0A%0A//%20another%20example%0Afunction%20sumOfArray%28arr%29%7B%0A%20%20%20%20newArr%20%3D%20%5B%5D%0A%20%20%20%20for%28let%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i%2B%2B%29%7B%0A%20%20%20%20%20%20%20%20newArr.push%28arr%5Bi%5D%20*2%29%0A%20%20%20%20%7D%0A%20%20%20%20return%20newArr%0A%7D%0A%0Aconsole.log%28sumOfArray%28%5B25,%2025,%2050%5D%29%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)
## character Count (DSA)
```javascript
function charCount(str){
let charList = {}for (let i = 0; i < str.length; i++){
let char = str[i].toLowerCase()if(charList[char] > 0){
charList[char]++
}else{
charList[char] = 1
}
}
return charList
}
console.table(charCount("Anower hossain"))
```## Visualization (charCount)
[Visualize code -(charCount)](https://pythontutor.com/render.html#code=function%20charCount%28str%29%7B%0A%20%20%20%20let%20charList%20%3D%20%7B%7D%0A%0A%20%20%20%20for%20%28let%20i%20%3D%200%3B%20i%20%3C%20str.length%3B%20i%2B%2B%29%7B%0A%20%20%20%20%20%20%20let%20char%20%3D%20str%5Bi%5D.toLowerCase%28%29%0A%0A%20%20%20%20%20%20%20if%28charList%5Bchar%5D%20%3E%200%29%7B%0A%20%20%20%20%20%20%20%20charList%5Bchar%5D%2B%2B%0A%20%20%20%20%20%20%20%7Delse%7B%0A%20%20%20%20%20%20%20%20charList%5Bchar%5D%20%3D%201%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20charList%0A%7D%0Aconsole.table%28charCount%28%22Anower%20hossain%22%29%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)
## Binary Search (DSA)
```javascript
function binarySearch(arr, value){
let start = 0
let end = arr.length -1while(start <= end){
let middle = Math.round((start + end) / 2) // use floorif(arr[middle] === value) return middle
if(value > arr[middle]){
start = middle + 1
}else if(value < arr[middle]){
end = middle -1
}}
return -1
}
console.log(binarySearch([2,3,4,7,34,66], 7))```
## Visualization (binarySearch)
[Visualize code -(binarySearch)](https://pythontutor.com/render.html#code=function%20binarySearch%28arr,%20value%29%7B%0A%20%20%20%20let%20start%20%3D%200%0A%20%20%20%20let%20end%20%3D%20arr.length%20-1%0A%0A%0A%20%20%20%20while%28start%20%3C%3D%20end%29%7B%0A%20%20%20%20%20%20%20%20let%20middle%20%3D%20Math.round%28%28start%20%2B%20end%29%20/%202%29%20//%20use%20floor%20%0A%0A%20%20%20%20%20%20%20%20if%28arr%5Bmiddle%5D%20%3D%3D%3D%20value%29%20return%20middle%0A%0A%20%20%20%20%20%20%20%20if%28value%20%3E%20arr%5Bmiddle%5D%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20start%20%3D%20middle%20%2B%201%0A%20%20%20%20%20%20%20%20%7Delse%20if%28value%20%3C%20arr%5Bmiddle%5D%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20end%20%3D%20middle%20-1%0A%20%20%20%20%20%20%20%20%7D%0A%0A%0A%20%20%20%20%7D%0A%20%20%20%20return%20-1%0A%7D%0Aconsole.log%28binarySearch%28%5B2,3,4,7,34,66%5D,%207%29%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)
## Recursion (DSA)
```javascript
function countDown(n){
// normal method
// for(let i = n; i > 0; i--){
// console.log(i)
// }
// Recursin methods
console.log(n)
n--
if(n > 0) {
countDown(n)
}
}
// countDown(10)//Another example
function sumOfNumber(n){
let sum = 0
for(let i = n; i >= 0; i--){
sum += i
}
return sum
}// console.log(sumOfNumber(10))
//Recursion
function sumOfNumberRe(n){
if(n < 0)return 0
return n + sumOfNumberRe(n - 1)
}console.log(sumOfNumberRe(10))
/*
Operation
============
10 + 9
19 + 8
27 + 7
34 + 6
40 + 5
45 + 4
49 + 3
52 + 2
54 + 1
55 + 0finel result = 55
*/```
## Visualization (recursion)
[Visualize code -(recursion)](https://pythontutor.com/render.html#code=function%20countDown%28n%29%7B%0A%20%20%20%20//%20normal%20method%0A%20%20%20%20//%20for%28let%20i%20%3D%20n%3B%20i%20%3E%200%3B%20i--%29%7B%0A%20%20%20%20//%20%20%20%20%20console.log%28i%29%0A%20%20%20%20//%20%7D%0A%20%20%20%20//%20Recursin%20methods%0A%20%20%20%20console.log%28n%29%0A%20%20%20%20n--%20%0A%20%20%20%20if%28n%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20countDown%28n%29%0A%20%20%20%20%7D%0A%7D%0A//%20countDown%2810%29%0A%0A%0A//Another%20example%0Afunction%20sumOfNumber%28n%29%7B%0A%20%20%20%20let%20sum%20%3D%200%0A%20%20%20%20for%28let%20i%20%3D%20n%3B%20i%20%3E%3D%200%3B%20i--%29%7B%0A%20%20%20%20%20%20%20%20sum%20%2B%3D%20i%0A%20%20%20%20%7D%0A%20%20%20%20return%20sum%0A%7D%0A%0A//%20console.log%28sumOfNumber%2810%29%29%0A%0A//Recursion%20%0Afunction%20sumOfNumberRe%28n%29%7B%0A%20%20%20%20if%28n%20%3C%200%29return%200%0A%20%20%20%20%0A%0A%20%20%20%20return%20n%20%2B%20sumOfNumberRe%28n%20-%201%29%0A%7D%0A%0Aconsole.log%28sumOfNumberRe%2810%29%29%0A%0A/*%0AOperation%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A10%20%2B%209%0A19%20%2B%208%0A27%20%2B%207%0A34%20%2B%206%0A40%20%2B%205%0A45%20%2B%204%0A49%20%2B%203%0A52%20%2B%202%0A54%20%2B%201%0A55%20%2B%200%0A%0Afinel%20result%20%3D%2055%0A*/&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)
## Proble Solving(DSA)
```javascript
let temperature = [-2, 4, 45, "error", -6, -8, 43]function getHigherAndLower(arr){
// make a higher variable
let higher = arr[0]
// make a lower variable
let lower = arr[0]// iterate the whole Array
for(let i = 0; i < arr.length; i++){
// let's check is there has any error
if(typeof arr[i] !== "number") continue
console.log(typeof arr[i])// if higher variable has smaller number than our current number than value will be our current element
if(higher < arr[i]){
higher = arr[i]
}
// if lower variable has bigger number than our current number than value will be our current element
if(lower > arr[i]){
lower = arr[i]
}
}
// return our higher variable and lower variable
return higher - lower}
// getHigherAndLower([3, 5, -9])
// getHigherAndLower(temperature)console.log(getHigherAndLower(temperature))
```
## Visualization (problesolving)
[Visualize code -(problesolving)](https://pythontutor.com/render.html#code=let%20temperature%20%3D%20%5B-2,%204,%2045,%20%22error%22,%20-6,%20-8,%2043%5D%0A%0Afunction%20getHigherAndLower%28arr%29%7B%0A%20%20%20%20//%20make%20a%20higher%20variable%0A%20%20%20%20let%20higher%20%3D%20arr%5B0%5D%0A%20%20%20%20%0A%20%20%20%20//%20make%20a%20lower%20variable%0A%20%20%20%20let%20lower%20%3D%20arr%5B0%5D%0A%0A%20%20%20%20//%20iterate%20the%20whole%20Array%0A%20%20%20%20for%28let%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i%2B%2B%29%7B%0A%20%20%20%20%0A%20%20%20%20//%20let's%20check%20is%20there%20has%20any%20error%0A%20%20%20%20if%28typeof%20arr%5Bi%5D%20!%3D%3D%20%22number%22%29%20continue%20%0A%20%20%20%20console.log%28typeof%20arr%5Bi%5D%29%0A%0A%0A%20%20%20%20//%20if%20higher%20variable%20has%20smaller%20number%20than%20our%20current%20number%20than%20value%20will%20be%20our%20current%20element%0A%20%20%20%20if%28higher%20%3C%20arr%5Bi%5D%29%7B%0A%20%20%20%20%20%20%20%20higher%20%3D%20arr%5Bi%5D%0A%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20//%20if%20lower%20variable%20has%20bigger%20number%20than%20our%20current%20number%20than%20value%20will%20be%20our%20current%20element%0A%20%20%20%20if%28lower%20%3E%20arr%5Bi%5D%29%7B%0A%20%20%20%20%20%20%20%20lower%20%3D%20arr%5Bi%5D%0A%20%20%20%20%7D%0A%7D%0A%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20//%20return%20our%20higher%20variable%20and%20lower%20variable%0A%20%20%20%20return%20higher%20-%20lower%0A%0A%7D%0A%0A//%20getHigherAndLower%28%5B3,%205,%20-9%5D%29%0A//%20getHigherAndLower%28temperature%29%0A%0A%0Aconsole.log%28getHigherAndLower%28temperature%29%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)
## Analyze BigO (DSA)
```javascript
function uniqueName(arr){let uniqueName = []
for(let i = 0; i < arr.length; i++){
let ele = arr[i]
if(!uniqueName.includes(ele)){
uniqueName.push(ele)
}
}
return uniqueName
}let nameArray = ['anower', 'shanto', 'rohan', 'rohan']
console.log(uniqueName(nameArray))```
## Visualization (analyzeBigO)
[Visualize code -(analyzeBigO)](https://pythontutor.com/render.html#code=function%20uniqueName%28arr%29%7B%0A%0A%20%20%20%20let%20uniqueName%20%3D%20%5B%5D%0A%20%20%20%20for%28let%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i%2B%2B%29%7B%0A%20%20%20%20%20%20%20%20let%20ele%20%3D%20arr%5Bi%5D%0A%20%20%20%20%20%20%20%20if%28!uniqueName.includes%28ele%29%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20uniqueName.push%28ele%29%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20uniqueName%0A%7D%0A%0A%0Alet%20nameArray%20%3D%20%5B'anower',%20'shanto',%20'rohan',%20'rohan'%5D%0Aconsole.log%28uniqueName%28nameArray%29%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)
## Bubble Sort(DSA)
```javascript
// bubble Sort implementationfunction bubbleSort(arr){
let isSwap
for(let i = 0; i < arr.length; i++){
isSwap = false
for(let j = 0; j < arr.length -i -1; j++){
console.log("Swap = ", arr, arr[j], arr[j+1])
if(arr[j] > arr[j+1]){
let temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
isSwap = true
}
}
if(!isSwap) break
}
return arr
}console.log(bubbleSort([2, 53, 23, 1, -3]))
```
## Visualization (bubbleSort)
[Visualize code -(bubbleSort)](https://pythontutor.com/render.html#code=//%20bubble%20Sort%20implementation%0A%0Afunction%20bubbleSort%28arr%29%7B%0A%20%20%20%20let%20isSwap%0A%20%20%20%20for%28let%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i%2B%2B%29%7B%0A%20%20%20%20%20%20%20%20isSwap%20%3D%20false%0A%20%20%20%20%20%20%20%20for%28let%20j%20%3D%200%3B%20j%20%3C%20arr.length%20-i%20-1%3B%20j%2B%2B%29%7B%0A%20%20%20%20%20%20%20%20console.log%28%22Swap%20%3D%20%22,%20arr,%20arr%5Bj%5D,%20arr%5Bj%2B1%5D%29%0A%20%20%20%20%20%20%20%20if%28arr%5Bj%5D%20%3E%20arr%5Bj%2B1%5D%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20let%20temp%20%3D%20arr%5Bj%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20arr%5Bj%5D%20%3D%20arr%5Bj%2B1%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20arr%5Bj%2B1%5D%20%3D%20temp%0A%20%20%20%20%20%20%20%20%20%20%20%20isSwap%20%3D%20true%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%28!isSwap%29%20break%0A%20%20%20%20%7D%0A%20%20%20%20return%20arr%0A%7D%0A%0Aconsole.log%28bubbleSort%28%5B2,%2053,%2023,%201,%20-3%5D%29%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)
## Linear Search (DSA)
```javascript
```
## Visualization (linearSearch)
[Visualize code -(linearSearch)](https://pythontutor.com/render.html#code=function%20linearSearch%28arr,%20value%29%7B%0A%20%20%20%20for%28let%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i%2B%2B%29%7B%0A%20%20%20%20%20%20%20%20if%28arr%5Bi%5D%20%3D%3D%20value%29%20return%20i%0A%20%20%20%20%7D%0A%20%20%20%20return%20-1%0A%7D%0A%0Aconsole.log%28linearSearch%28%5B2,3,4,5,6%5D,%205%29%29%0A//%20console.log%28linearSearch%28%5B%22anower%22,%20%22shanto%22,%20%22sajib%22,%20%22rohan%22%5D,%22anower%22%29%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)
## Helper Function(DSA)
```javascript
// statement
// find the odd number and push empty arrayfunction findOddNumber(arr){
let result = []
function helper(input){
if(input.length === 0) returnif(input[0] % 2 !== 0){
result.push(input[0])
}helper(input.slice(1))
}helper(arr)
return result //if someone say find length just add (result.length)
}console.log(findOddNumber([2,3,56,8, 3, 6, 8, 5]))
```
## Visualization (helperFunction)
[Visualize code -(helperFunction)](https://pythontutor.com/render.html#code=//%20statement%20%0A//%20find%20the%20odd%20number%20and%20push%20empty%20array%0A%0Afunction%20findOddNumber%28arr%29%7B%0A%0A%20%20%20%20let%20result%20%3D%20%5B%5D%0A%20%20%20%20function%20helper%28input%29%7B%0A%20%20%20%20%20%20%20%20if%28input.length%20%3D%3D%3D%200%29%20return%0A%0A%20%20%20%20%20%20%20%20if%28input%5B0%5D%20%25%202%20!%3D%3D%200%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20result.push%28input%5B0%5D%29%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20helper%28input.slice%281%29%29%0A%20%20%20%20%7D%0A%0A%20%20%20%20helper%28arr%29%0A%0A%20%20%20%20return%20result%20//if%20someone%20say%20find%20length%20just%20add%20%28result.length%29%0A%7D%0A%0Aconsole.log%28findOddNumber%28%5B2,3,56,8,%203,%206,%208,%205%5D%29%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false)