알고리즘 with 자바

준비중..

알고리즘 with 자바

문제 해결을 위한 개발자의 필수 소양!

06 버블 정렬(buble sort)

# 버블 정렬 ## 목차 --- 1. 무엇? 2. 특징? 3. 알고리즘 ## 1. 무엇? --- 제자리 정렬 알고리즘의 하나. 거품이 올라가듯 정렬. 1. 두 값을 비교하여 정렬 2. 한 칸 이동 후 다시 두 값 비교 후 정렬 3. 끝 까지 수행하면 제일 큰(또는 작은) 값이 끝으로 오게 됨 4. 이(1~3)를 반복 ## 2. 특징? --- - 구현이 매우 간단 - 추가 메모리 필요 X (in-place) - 느림, 시간 복잡도 O(n^2) ## 3. 알고리즘 --- ![클라우드스터딩-알고리즘-버블-정렬](https://i.imgur.com/OPRV2ez.gif) ### 의사코드 ``` procedure bubbleSort( A : list of sortable items ) defined as: for each i in 1 to length(A) do: for each j in length(A) downto i + 1 do: if A[ j ] < A[ j - 1 ] then swap( A[ j ], A[ j - 1 ] ) end if end for end for end procedure ``` ### 소스코드 ``` void bubbleSort(int[] arr) { int temp = 0; for(int i = 0; i < arr.length; i++) { for(int j= 1 ; j < arr.length-i; j++) { if(arr[j]<arr[j-1]) { temp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; } } } System.out.println(Arrays.toString(arr)); } ```