๋ฒ๋ธ์ ๋ ฌ
๋ฌธ์ ์ค๋ช
ํด์ค
- ๋ฒ๋ธ์ ๋ ฌ ํด์ฃผ๋ฉด ๋๋ค.
- ์ ๋ ฌ์ ์ข
๋ฅ๊ฐ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ํท๊ฐ๋ฆด๊น๋ด ๋ฒ๋ธ์ ๋ ฌ์ด ์ด๋ค ์ ๋ ฌ์ธ์ง ์์๋๊ธฐ
1. ๊ฐ๋
- ์ธ์ ํ ์์๋ผ๋ฆฌ ๋น๊ตํด์ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ
2. ํน์ง
- ์ถ๊ฐ์ ์ธ ๊ณต๊ฐ ํ์ x -> ์ ์๋ฆฌ์ ๋ ฌ
- ๋ฐ์ดํฐ ๋น๊ต -> ๋น๊ต์ ๋ ฌ
3. ๋ฐฉ๋ฒ
- ์์์๋ถํฐ ๋ค์ ์์ ๋น๊ต
- ํ์ฌ ์์๊ฐ ๋ค์ ์์ ๋ณด๋ค ํฌ๋ฉด ๊ตํ -> ์ค๋ฆ์ฐจ์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ํฐ ์์๊ฐ ๋งจ ๋ค๋ก ๊ฐ๊ฒ ๋๋ค.
- ๋๋๋ฉด ๋ค์ ์ฒ์๋ถํฐ ๋-1 ๊น์ง ๋ฐ๋ณต -> ๊ฐ์ฅํฐ์์๋ฅผ ๋์ ๋๊ธฐ ๋๋ฌธ
- ๊ทธ๋ฆผ์ค๋ช
4. ์๊ฐ๋ณต์ก๋
- O(N2) : ๋ฐ๋ณต๋ฌธ์ ๋๋ฒ ์ฐ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฏธ ์ ๋ ฌ์ด ๋์ด๋ ๊ณ์ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ด๋ค.
- O(N) : ์ต์ ์ผ๋ก ์ค์ธ๊ฒฝ์ฐ์ด๋ค. ์ ๋ ฌ๋ง ์๋ฃ๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋๋ด๋ฒ๋ฆฐ๋ค. ๊ทธ๋ฌ๋ฉด ๊ฒฐ๊ตญ ๋ฐ๋ณต๋ฌธ ํ๋์ ์๋ ดํ๊ธฐ ๋๋ฌธ์ O(N)์ด ๋๋ค.
public class Bubblesort {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
String[] temp = br.readLine().split(" ");
int[] arr = new int[temp.length];
for(int i = 0 ; i< temp.length ; i++) arr[i] = Integer.parseInt(temp[i]);
bubbleSort(arr);
}
public static void bubbleSort(int[] arr) {
int tempVar = 0;
for(int i = 0; i < arr.length-1 ; i++) {
boolean flag = true;
for(int j = 0 ; j<arr.length-1-i ; j++) {
if(arr[j]>arr[j+1]) {
tempVar=arr[j];
arr[j] = arr[j+1];
arr[j+1] = tempVar;
flag = false;
}
}
if(flag) break;
}
for(int i = 0; i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}