๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript) ] section07 - 2 - ๋ฒ„๋ธ”์ •๋ ฌ

by YWTechIT 2021. 9. 8.
728x90

๐Ÿ“ section07 - 2 - ๋ฒ„๋ธ”์ •๋ ฌ

๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฌ์šด ์ •๋ ฌ ์ค‘ ํ•œ ๊ฐœ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜๋Š” ๋ชจ์Šต์ด ๋ฒ„๋ธ” ๊ฐ™์•„์„œ ๋ถ™์—ฌ์ง„ ์ด๋ฆ„์ด๋‹ค. (๋ฐ์ดํ„ฐ๊ฐ€ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๋ชจ์Šต์ด ๊ฑฐํ’ˆ์ด ์˜ฌ๋ผ์˜ค๋Š” ๋ชจ์Šต ๊ฐ™์€๊ฐ€?)

 

 

๋ฒ„๋ธ” ์ •๋ ฌ์€ ๋‹ค๋ฅธ ์ •๋ ฌ์— ๋น„ํ•ด ๊ตฌํ˜„์ด ์‰ฝ๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.(์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ) ํ•˜์ง€๋งŒ, ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2)๊ฐ€ ๊ฑธ๋ฆฌ๋ฏ€๋กœ ์‹ค์ œ ๋งŽ์ด ์“ฐ์ด์ง€๋Š” ์•Š๋Š”๋‹ค. (์ด๋ฏธ ์ •๋ ฌ์ด ๋˜์–ด์žˆ๋Š” ์ตœ์ ํ™”์˜ ๊ฒฝ์šฐ์—๋Š” O(N) ๊ฑธ๋ฆฐ๋‹ค.)

 

  1. j๊ฐ€ ๋Œ ๋•Œ๋งˆ๋‹ค j+1๊ณผ ๋งค๋ฒˆ ๋น„๊ตํ•œ๋‹ค.(์‹คํ–‰ ํšŸ์ˆ˜๊ฐ€ ๋งŽ๋‹ค.)
  2. i๊ฐ€ ํ•œ ๋ฐ”ํ€ด ๋Œ๊ณ  ๋‚œ ์ดํ›„ ๋‹ค์Œ j๋ฒˆ์„ ๋Œ ๋•Œ i์˜ ๋งจ ๋งˆ์ง€๋ง‰ ๊ฐ’์ด ํ•˜๋‚˜ ์ค„์–ด๋“  ๋ฒ”์œ„๊นŒ์ง€๋งŒ ํƒ์ƒ‰ํ•œ๋‹ค. (1๋ฒˆ์„ ๊ฑฐ์น˜๋ฉด์„œ ์ œ์ผ ํฐ ๊ฐ’์€ ๋งจ ๋’ค๋กœ ๊ฐ€์žˆ๋‹ค๊ณ  ํ™•์ •์„ ์ง“๋Š”๋‹ค.)
728x90

 

let n = 6;
let arr = [13, 5, 11, 7, 23, 15];
console.log(solution(n, arr));
function solution(n, arr) {
for (let i = 0; i < n - 1; i++) {
for (let j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
return arr;
}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€