μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- custom hook
- λ°±μ€
- νλ‘κ·Έλλ¨Έμ€
- DP
- JavaScript
- λΆμ€νΈμΊ νμΉλͺ¨λ°μΌ
- Node.js
- μ½ν
- μ΄λ―Έμ§ μμ
- μΉ΄μΉ΄μ€μ±μ©
- λΈλ£¨νΈν¬μ€
- React
- svgνμΌ λ€λ£¨κΈ°
- 리λμ€ ν΄ν·
- μλ°©ν₯ μ°κ²° 리μ€νΈ
- Redux toolkit
- μκ³ λ¦¬μ¦
- icecandidate
- μΉ΄μΉ΄μ€
- λμ κ³νλ²
- TypeScript
- js
- μλ°μ€ν¬λ¦½νΈ
- λΆμ€νΈμ»¨νΌλ°μ€
- μ½λ ν¬λ©§
- κ³Όμ ν μ€νΈ
- λλκ·Έ μ΄λ²€νΈ
- μ΄λΆνμ
- router v6
- μ½λ©ν μ€νΈ
- Today
- Total
π₯ dev-ruby
[μκ³ λ¦¬μ¦] μ΄μ§ νμ (μ΄λΆ νμ, Binary Search) λ³Έλ¬Έ
μ΄μ§ νμ (μ΄λΆ νμ, Binary Search)
- μ΄μ§ νμ μκ³ λ¦¬μ¦μ μ λ ¬λμ΄ μλ 리μ€νΈμμ νμ λ²μλ₯Ό μ λ°μ© μ’νκ°λ©° λ°μ΄ν°λ₯Ό νμνλ λ°©λ²μ΄λ€.
- μ΄μ§ νμμ λ°°μ΄μ λ°μ΄ν°κ° μ λ ¬λμ΄ μμ΄μΌλ§ μ¬μ©ν μ μλ μκ³ λ¦¬μ¦μ΄λ€.
- λ³μ 3κ°(start, mid, end)λ₯Ό μ¬μ©νμ¬ νμνλ€.
μ°Ύκ³ μνλ λ°μ΄ν°μ λ°°μ΄μ μ€κ°(mid) μμΉμ μλ λ°μ΄ν°λ₯Ό λ°λ³΅μ μΌλ‘ λΉκ΅ν΄μ μνλ λ°μ΄ν°λ₯Ό μ°Ύλ κ²μ΄ μ΄μ§ νμμ΄λ€.
μ΄μ§ νμ(Binary Search)μ νμ κ³Όμ
μμ λ°μ΄ν° μ§ν©μμ 8μ΄λ λ°μ΄ν°λ₯Ό νμνλλ‘ νμ. μ°μ 첫λ²μ§Έλ‘ λ°°μ΄μ μ€κ° μμλ₯Ό μ ννλ€.
mid = 7;
λλ²μ§Έλ‘λ μ€κ° κ°κ³Ό μ°ΎμΌλ €λ κ°μ μλ‘ λΉκ΅νλ€.
λ§μ½ μ°ΎμΌλ €λ κ°μ΄ μ€κ° κ°λ³΄λ€ μλ€λ©΄ μ€μ μμμ μΌμͺ½μμ μ€κ° κ°μ λ€μ ννκ³ , μ°ΎμΌλ €λ κ°μ΄ μ€κ° κ°λ³΄λ€ ν¬λ€λ©΄ μ€λ₯Έμͺ½μμ μ€κ° κ°μ λ€μ ννκ² λλ€.
그리곀 λ€μ μ΄μ§ νμ(Binary Search)κ³Όμ μ κ±°μΉλ κ²μ΄λ€.
μμ κ²½μ°, μ°ΎμΌλ €λ κ°μΈ 8μ΄ μ€κ°κ° 7λ³΄λ€ ν¬λ―λ‘ μ€κ° κ° μΌμͺ½μ μλ λ°μ΄ν°λ λΉκ΅ν νμκ° μλ κ²μ΄λ€.
μ΄μ , μ€κ° κ° 7μ μ€λ₯ΈνΈμμ μ€κ° κ°μ λ€μ ννλ€.
μ΄μ λ μ€κ° κ°μ΄ 9μ΄κ³ , λ€μ μ°ΎμΌλ €λ κ°κ³Ό μ€κ° κ°μ λΉκ΅νκ² λ©λλ€.
μ°ΎμΌλ €λ κ° 8, mid = 9;
8μ΄ 9λ³΄λ€ μμΌλ―λ‘ μ€κ° κ° μΌνΈμμ λ°μ΄ν°λ₯Ό μ°ΎμμΌ νλ€.
κ·ΈλΌ λ€μ μΌμͺ½μμ μ€κ° κ°μ μ ννλ€.
mid = 8;
λ¨μ λ°μ΄ν° 8μ΄ μ€κ° κ°μΌλ‘ νν΄μ§κ² λλλ° μ°ΎμΌλ €λ λ°μ΄ν°μ μΌμΉνλ―λ‘ νμμ λλ§μΉλ€.
μ΄μ§ νμ μ½λ (JavaScript)
: μλ°μ€ν¬λ¦½νΈλ‘ ꡬνν μ΄μ§νμ μ½λμ΄λ€.
function binarySearch(sortedArray, target) {
let start = 0;
let end = sortedArray.length - 1;
while (start < end) {
const mid = start + Math.floor((start + end) / 2);
if (sortedArray[mid] === target)
return mid;
if (sortedArray[mid] < target)
start = mid + 1;
else
end = mid - 1;
}
return -1;
}
const nums = [10, 40, 70, 50, 30, 90, 80, 20, 60];
const sortedNums = nums.sort();
console.log(binarySearch(sortedNums, 40));
> 3
console.log(binarySearch(sortedNums, 100));
> -1
'algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μκ³ λ¦¬μ¦] λμ κ³νλ²(Dynamic Programming, DP) μ΄λ? (0) | 2021.12.21 |
---|---|
[μκ³ λ¦¬μ¦] λ€μ΅μ€νΈλΌ(Dijkstra) μκ³ λ¦¬μ¦ (0) | 2021.11.25 |