์๋ ํ์ธ์. ์ฃผ์ธ์ฅ H์ ๋๋ค.
์ค๋์ ์ ํ์ ๋ ฌ์ ๋ํด์ ์์๋ณผ๊ฑด๋ฐ์.
1~10 ๊น์ง ๋ฌด์ง์ํ ์ซ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ๋ผ๊ณ ํ๋ค๋ฉด
์ ํ์ ๋ ฌ์ ๊ฐ์ฅ ์์ ๊ฒ์ ์ ํํด์ ์ ์ผ ์์ผ๋ก ๋ณด๋ด๋ฉด ์ด๋จ๊น? ๋ผ๋ ๊ณ ๋ฏผ์์ ์์ํ์ต๋๋ค.
๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์ ๋ ฌ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์ ํ์ ๋ ฌ์ ๋๋ต N* (N+1)/2 ๋ฒ์ ์ฐ์ฐ์ ์ํํ๋๋ฐ์.
๋น ์ค ํ๊ธฐ๋ฒ์ผ๋ก ํ๊ฒ๋๋ค๋ฉด O(N^2)๊ฐ ๋ฉ๋๋ค.
์ฆ, ์ ํ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋๋ O(N^2).
// 1 ~ 10 ๊น์ง ์ ๋ ฌ ํ๊ธฐ
#include<stdio.h>
int main(void) {
int arr[10] = { 1,3,2,5,7,6,10,9,8,4 };
int i, j, index, temp;
for (i = 0; i < 10; i++) {
int min = 11;
for (j = i; j < 10; j++) {
if (arr[j] < min) {
min = arr[j];
index = j;
}
}
temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
for (i = 0; i < 10; i++) {
printf("%d", arr[i]);
}
return 0;
}
'์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] c++ sortํจ์๋ฅผ ํ์ฉํ ์ ๋ ฌ (0) | 2020.08.12 |
---|---|
[์๋ฃ๊ตฌ์กฐ] ๋ณํฉ์ ๋ ฌ merge sort (0) | 2020.08.06 |
[์๋ฃ๊ตฌ์กฐ] ํต์ ๋ ฌ Quick Sort (0) | 2020.08.04 |
[์๋ฃ๊ตฌ์กฐ] ๋ฒ๋ธ์ ๋ ฌ Bubble Sort (0) | 2020.08.04 |
Insertion Sort ์ฝ์ ์ ๋ ฌ (0) | 2020.08.04 |