[Algorithm]

hyena_leeΒ·2023λ…„ 3μ›” 23일
0

Algorithm

λͺ©λ‘ 보기
53/53
post-thumbnail

πŸ¦• binarySearch

πŸ€ 문제 풀이

const binarySearch = function (arr, target) {
  let start = 0;
  let end = arr.length - 1
  let mid
  
  while(start <= end){ //점점 μ’ν˜€μ§€λ‹€κ°€ start와 end의 μˆœμ„œκ°€ μ–΄κΈ‹λ‚˜κ²Œ 되면 λ°˜λ³΅μ„ μ’…λ£Œν•œλ‹€
  
  mid = parseInt((start + end)/2)
  
  if(target === arr[mid]){
    return mid;
  } else{
    if(target<arr[mid]){
      end = mid - 1
    }
    else{
      start = mid + 1
    }
  }
  }
  return -1

};

🌲 회고

이진 νƒμƒ‰μ΄λž€ 데이터가 μ •λ ¬λ˜μ—ˆλŠ” λ°°μ—΄μ—μ„œ νŠΉμ •ν•œ 값을 μ°Ύμ•„λ‚΄λŠ” μ•Œκ³ λ¦¬μ¦˜!!
λ°°μ—΄μ˜ 쀑간에 μžˆλŠ” μž„μ˜μ˜ 값을 μ„ νƒν•˜μ—¬ 찾고자 ν•˜λŠ” κ°’ x와 λΉ„ν‘œν•œλ‹€. xκ°€ 쀑간 값보닀 μž‘μœΌλ©΄ 쀑간 값을 κΈ°μ€€μœΌλ‘œ μ™Όμͺ½ 데이터듀을 λŒ€μƒμœΌλ‘œ, xκ°€ 쀑간값보닀 크면 λ°°μ—΄μ˜ 였λ₯Έμͺ½μ„ λŒ€μƒμœΌλ‘œ λ‹€μ‹œ νƒμƒ‰ν•œλ‹€. λ™μΌν•œ λ°©λ²•μœΌλ‘œ λ‹€μ‹œ μ€‘κ°„μ˜ 값을 μž„μ˜μ˜λ‘œ μ„ νƒν•˜μ—¬ λΉ„κ΅ν•œλ‹€. ν•΄λ‹Ή 값을 찾을 λ•ŒκΉŒμ§€ 이 과정을 λ°˜λ³΅ν•œλ‹€.
이진탐색(O(logN))은 λ‹¨μˆœν•œ λ°°μ—΄ 순회 (O(N))보닀 μ‹œκ°„λ³΅μž‘λ„μ—μ„œ 크게 이점을 κ°™λŠ”λ‹€.
μ²˜μŒμ— μ ‘ν• λ•Œλ§Œν•΄λ„ 이거 무슨 말이지? ν–ˆμ§€λ§Œ ν•œλ²ˆ λ‘λ²ˆ μ„Έλ²ˆ ν‘Έλ‹ˆ μ•„ λ§žλ‹€ μ΄λ ‡κ²Œ ν–ˆμ§€ γ…‹γ…‹ 감이 μ˜¨λ‹€...λ¬Όλ‘  μ•„μ‰¬μš΄κ±΄ μž¬κ·€μ μœΌλ‘œ 풀지 λͺ»ν•œ λ‚˜μ—κ²Œ ν•œμ‹¬...μž¬κ·€ν•¨μˆ˜ 기얡이 κ°€λ¬Όκ°€λ¬Όν•˜λ‹€λŠ” 점...

profile
μ‹€μˆ˜λ₯Ό λ‘λ €μ›Œ 말고 계속 도전 ν•˜λŠ” 개발자의 μ—¬μ •!

0개의 λŒ“κΈ€