์ค๋ฆ์ฐจ์ ์ ๋ ฌ ๊ธฐ์ค์ผ๋ก ์ฒซ ๋ฒ์งธ ๊ฐ๊ณผ ๋ ๋ฒ์งธ ๊ฐ์, ๋ ๋ฒ์งธ ๊ฐ๊ณผ ์ธ ๋ฒ์งธ ๊ฐ์, ..., (๋ง์ง๋ง - 1)๋ฒ์งธ ๊ฐ๊ณผ ๋ง์ง๋ง ๊ฐ์ ๋น๊ตํ์ฌ ํฐ ๊ฐ์ ๋ค๋ก ๋ณด๋ด๋ฉด์ ๋ฐฐ์ด์ ์ ๋ ฌํ๋ค
์ฒ์ ์ ๋ ฌ ํ๋ค ๊ฐ์ฅ ํฐ ๊ฐ์ด ๋งจ ๋ค๋ก ์ด๋ํ๋ฏ๋ก ๊ทธ๋ค์ ์ ๋ ฌ์์๋ ๋งจ ๋์ ์๋ ๊ฐ์ ์ ๋ ฌ์์ ์ ์ธ๋๊ณ , ๋ ๋ฒ์งธ ์ ๋ ฌ์ ํ๋ค ๋์์ ๋ ๋ฒ์งธ ๊ฐ์ ์ ๋ ฌ์์ ์ ์ธ๋๋ค. ์ด๋ ๊ฒ ๋๊น์ง ๋ฐ๋ณตํ๋ค
์๊ฐ ๋ณต์ก๋: O(nยฒ)
๊ณต๊ฐ ๋ณต์ก๋: O(1)
// ์ค๋ฆ์ฐจ์
function ascBubbleSort(array) {
// ์์ฐจ์ ์ผ๋ก ๋น๊ตํ๊ธฐ ์ํ ๋ฐ๋ณต๋ฌธ
for (let i = 0; i < array.length - 1; i++) {
// ๋๊น์ง ๋์์ ๋ ๋ค์ ์ฒ์๋ถํฐ ๋น๊ตํ๊ธฐ ์ํ ๋ฐ๋ณต๋ฌธ
for (let j = 0; j < array.length - i; j++) {
// array[j]๊ฐ์ด arrat[j + 1]๊ฐ๋ณด๋ค ํฌ๋ฉด ๋ณ๊ฒฝ
if (array[j] > array[j + 1]) {
// ๋ ์๋ฅผ ์๋ก ๋ฐ๊ฟ์ค
const temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
return array;
}
// ๋ด๋ฆผ์ฐจ์
function descBubbleSort(array) {
// ์์ฐจ์ ์ผ๋ก ๋น๊ตํ๊ธฐ ์ํ ๋ฐ๋ณต๋ฌธ
for (let i = 0; i < array.length - 1; i++) {
// ๋๊น์ง ๋์์ ๋ ๋ค์ ์ฒ์๋ถํฐ ๋น๊ตํ๊ธฐ ์ํ ๋ฐ๋ณต๋ฌธ
for (let j = 0; j < array.length - 1 - i; j++) {
// array[j]๊ฐ์ด arrat[j + 1]๊ฐ๋ณด๋ค ํฌ๋ฉด ๋ณ๊ฒฝ
if (array[j] < array[j + 1]) {
// ๋ ์๋ฅผ ์๋ก ๋ฐ๊ฟ์ค
const temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
return array;
}
ascBubbleSort([7, 1, 5, 4, 6, 3, 2, 8]); // [ 1, 2, 3, 4, 5, 6, 7, 8 ]
descBubbleSort([7, 1, 5, 4, 6, 3, 2, 8]); // [ 8, 7, 6, 5, 4, 3, 2, 1 ]