// Q. 1 2 4 7 8 9 로 정렬이 돼서 나오게 하려면?
int [] arr = {7,4,2,1,9,8};
for(int i = 0 ; i < arr.length ; i++) {
System.out.println(arr[i]);
}
// 정렬(sorting algorism)
// 1. 선택 정렬 (7을 4,2,1,9,8과 각각 비교해서 7이 더크면 자리를 바꾼다!)
System.out.println("=====selection sort=====");
for(int x = 0 ; x < arr.length-1 ; x++) { // 5번만 비교하면되니까 6-1한거지
// x : 0 1 2 3 4
for(int y = x + 1 ; y < arr.length ; y++) { // y : 1 2 3 4 5
if(arr[x] > arr[y]) {
int temp = arr[x]; // 2자리를 바꾸려면 3개를 생성해야해....
arr[x] = arr[y]; // temp = 7, x = 4, y = 7 이렇게 된다
arr[y] = temp; // 순서 잘생각하기!!!!!!!!
}
}
}
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
// 2. 버블 정렬 (인접한 두 원소를 비교 -> 2개씩 돌면서 큰걸 뒤로 보내면 1번째 싸이클에 최대값이 맨끝으로 가겠지?)
System.out.println("=====bubble sort====="); // 7 4 2 1 9 8
for(int x = arr.length - 1 ; x > 0; x--) { // x : 5 / 4 / 3
for(int y = 0 ; y < x ; y++) { // y : 0 1 2 3 4 / 0 1 2 3 / 0 1 2...
if(arr[y] > arr[y+1]) { // y : 7, y+1 : 4
int temp = arr[y]; // temp = 7, y = 4, y+1 = 7
// 472198 / 427198 / 421798 / 421798 / 421789 --> x가 5일때
arr[y] = arr[y+1]; // temp = 4, y = 2, y+1 = 4
arr[y+1] = temp; // 241789 / 214789 / 214789 / 214789 --> x가 4일때
}
}
}
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
'JAVA > DAY 08 _ 23.08.28' 카테고리의 다른 글
Q. 배열을 활용해서 2~100 정수 중 소수를 구해보자 (0) | 2023.09.10 |
---|---|
foreach (0) | 2023.09.10 |
문자열 비교 (0) | 2023.09.04 |
참조 주소 (0) | 2023.09.04 |
이중배열2 (0) | 2023.09.04 |