- 버블정렬 알고리즘
1. 버블정렬이란.
2. 버블정렬 설명.
3. 버블정렬 사용법.
1. 버블정렬이란.
- 두 개의 인접한 원소를 비교하여 정렬하는 방식이다.
2. 버블정렬 설명.
- 버블정렬을 이해하려면 그림으로 보면 이해하기가 쉽다.
위의 사진을 보면 인접한 숫자와 비교하여 큰 숫자가 뒤로 쌓이는게 보인다.
쌓이는 모습이 마치 버블이 올라오는것 같아 버블정렬이라고한다.
그리고 위를 보면 뭔가 이중반복문을 사용하면 될것 같이 생겼다.
3. 버블정렬 사용법.
버블정렬 사용법은 이러하다.
class Exam {
public int solution(int[] array) {
int n = array.length;
int temp;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n-1-i; j++) {
if (array[j] > array[j+1]) {
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
}
그냥 사용해도 괜찮지만 나는 보기 편하게 하기 위해 array.length를 변수 n으로 설정했다.
그리고 인덱스의 숫자만큼 반복하는 반복문을 만드는데 인덱스는 배열의 길이에서 1을 빼면되므로 i < n으로 설정했다.
첫반째 반복문 안에 있는 두번째 반복문은 종료조건을 n-1-i를 해주면 좋은데 그 이유는 n으로 설정하면 for문안에 있는 if문에서 array[j+1] 여기에서 두번째 for문의 j보다 큰 j+1의 인덱스 번를 부르는데 그건 기존에 있는 array의 갯수를 벗어났기 때문이다.
그리고 난후 두번째 반복문 안에 조건문을 만들어 앞에있는 원소가 더 크면 그 원소를 미리 만들어둔 temp라는 변수에 저장후 array[j]에 array[j+1]을 넣는데 이렇게만 두면 array[j+1]만 두개가 되므로 array[j+1]에 미리 저장해둔 array[j]의 값 temp를 넣으면 위 코드의 해석이 끝난다.