잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록
현록의 기록저장소
정렬 - 버블 정렬 본문
이미 Quick Sort와 Merge Sort를 살펴봤지만,
[Study/Algorithm] - 정렬 - 합병 정렬
시간복잡도를 보는 겸 버블 정렬도.
https://ko.wikipedia.org/wiki/%EA%B1%B0%ED%92%88_%EC%A0%95%EB%A0%AC
이중 for문을 사용하기 때문에 시간복잡도(O)는
O(n^2).
void bubbleSort(int[] arr) {
for(int i = 0; i < arr.length; ++i) {
for(int j = 0; j < arr.length - 1 - i; ++j) {
if(arr[j] > arr[j + 1]) {
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
}
j에서 1만큼 빼는 이유는
비교를 j와 j+1로 하기 때문.
j에서 i만큼 빼는 이유는
최종 확정 위치에 정착하는 요소가 가장 오른편부터 누적되고(위 코드에서는 왼→오로 진행되기 때문),
이 요소들은 다음에 검토할 필요가 없으므로.
'Study > Algorithm' 카테고리의 다른 글
Hash Function (0) | 2019.06.27 |
---|---|
한 선이 만나는 다른 선의 수 (0) | 2019.05.11 |
정규표현식(Regular Expression) (0) | 2019.05.05 |
정렬 - 합병 정렬 (0) | 2019.04.28 |
정렬 - 퀵 정렬 (0) | 2019.04.27 |
Comments
잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록