#1 ์๊ณ ๋ฆฌ์ฆ
#1-1

์ ๋ ฌ ๋ฐฉ์์ด ๋ง์น ๊ฑฐํ์ด ์์ค์ ์๋ค๊ฐ ์๋ฉด ์๋ก ๋ณด๊ธ๋ณด๊ธ ์ฌ๋ผ๊ฐ๋ ๋ชจ์ต๊ณผ ๋น์ทํด์ ๋ฒ๋ธ ์ ๋ ฌ์ด๋ผ๊ณ ์ด๋ฆ ๋ถ์ฌ์ก๋ค. ๊ธฐ๋ณธ์ ์ธ ๋ฒ๋ธ ์ ๋ ฌ์, ์ ๋ ฌ ์์ ์ ์์ํ ๋ ์ค๊ฐ์ ๋ฐฐ์ด ์ด๋ฏธ ์ ๋ ฌ๋ ์ํ์ฌ๋ maxIndex๊ฐ 1์ด ๋๋ ๋ง์ง๋ง ๋ฐ๋ณต๊น์ง ๋ฌด์๋ฏธํ ์ํ์ ๊ณ์ํ๋ค. ์ด ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์๊ณ ๋ฆฌ์ฆ์ ํ ๊ฐ์ง ์ฅ์น๋ฅผ ํ ์ ์๋๋ฐ, ๊ทธ๊ฑธ ํฅ์๋ ๋ฒ๋ธ ์ ๋ ฌ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
#2-1

๋ฐ๋์ n * (n - 1) / 2๋ฒ์ ๋น๊ต๋ฅผ ํ๋ ์ผ๋ฐ ๋ฒ๋ธ ์ ๋ ฌ์ ๋นํด, ํฅ์๋ ๋ฒ๋ธ ์ ๋ ฌ์ ๋น๊ต ํ์๋ฅผ ์ต์ (n - 1)๋ฒ๊น์ง ๋ฎ์ถ ์ ์๋ค.
#2 ์ฝ๋
#2-1 ์๋ฐ
public static void bubbleSort(int[] array, int startIndex, int endIndex) {
for(int maxIndex = endIndex; startIndex < maxIndex; maxIndex--) {
boolean isSorted = true;
// ๋ฐฐ์ด์ 0 ~ (maxIndex - 1)๋ฒ์งธ ์์๋ฅผ ์ํํ๋ค
for(int i = 0; i < maxIndex; i++) {
//ํด๋น ์์๊ฐ ๋ฐ๋ก ์ค๋ฅธ์ชฝ ์์๋ณด๋ค ํฌ๋ฉด ๊ฐ์ ์๋ก ๊ตํํ๋ค
if(array[i + 1] < array[i]) {
int temp = array[i + 1];
array[i + 1] = array[i];
array[i] = temp;
isSorted = false;
}
}
// ๊ตํ์ด ํ๋ฒ๋ ์ผ์ด๋์ง ์์๋ค๋ฉด ์ ๋ ฌ ์์
์ ์ข
๋ฃํ๋ค
if(isSorted) {
break;
}
}
}
#2-2 ์ฝํ๋ฆฐ
fun bubbleSort(array: Array<Int>, startIndex : Int, endIndex : Int) {
for(maxIndex : Int in endIndex downTo (startIndex + 1)) {
var isSorted = true
// ๋ฐฐ์ด์ 0 ~ (maxIndex - 1)๋ฒ์งธ ์์๋ฅผ ์ํํ๋ค
for(i : Int in 0..(maxIndex - 1)) {
// ํด๋น ์์๊ฐ ๋ฐ๋ก ์ค๋ฅธ์ชฝ ์์๋ณด๋ค ํฌ๋ฉด ๊ฐ์ ์๋ก ๊ตํํ๋ค
if(array[i + 1] < array[i]) {
val temp = array[i + 1]
array[i + 1] = array[i]
array[i] = temp
isSorted = false
}
}
// ๊ตํ์ด ํ๋ฒ๋ ์ผ์ด๋์ง ์์๋ค๋ฉด ์ ๋ ฌ ์์
์ ์ข
๋ฃํ๋ค
if(isSorted) {
break
}
}
}
#3 ์์ฝ
๋ฒ๋ธ ์ ๋ ฌ์ ๋ฌผ ์์ '๊ฑฐํ'์ฒ๋ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ๋ผ๊ฐ๋ฉด์, ํ์ํ๋ฉด ๊ฐ์ ๊ตํํ๋ ์ ๋ ฌ์ด๋ค
#4 ์ด ๊ฐ๋ ์ด ์ฌ์ฉ๋ ๊ธ
2750 - ์ ์ ๋ ฌํ๊ธฐ
#1 ์๊ณ ๋ฆฌ์ฆ ๋ฒ๋ธ ์ ๋ ฌ (Bubble Sort) #1 ์๊ณ ๋ฆฌ์ฆ ์ ๋ ฌ ๋ฐฉ์์ด ๋ง์น ๊ฑฐํ์ด ์์ค์ ์๋ค๊ฐ ์๋ฉด ์๋ก ๋ฝ๊ธ๋ฝ๊ธ ์ฌ๋ผ๊ฐ๋ ๋ชจ์ต๊ณผ ๋น์ทํด์ ๋ฒ๋ธ ์ ๋ ฌ์ด๋ผ๊ณ ์ด๋ฆ ๋ถ์ฌ์ก๋ค. ๊ธฐ๋ณธ์ ์ธ ๋ฒ๋ธ ์ ๋ ฌ์, ์
kenel.tistory.com
'๊นจ์ ๊ฐ๋ ๐ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๋ ฌ - ํ ์ ๋ ฌ (Heap Sort) (0) | 2023.11.20 |
---|---|
์ ๋ ฌ - ๋ณํฉ ์ ๋ ฌ (Merge Sort) (1) | 2023.11.14 |
์ค๋ณต๋ ์์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์ ์ด์ง ํ์ (Binary Search) (0) | 2023.11.07 |
์ด์ง ํ์ (Binary search) (0) | 2023.11.06 |
์ ๋ ฌ - ์ ํ ์ ๋ ฌ (Selection Sort) (0) | 2023.11.02 |