Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 랭킹정렬
- 스프링 jsp
- 스프링부트 오류
- video tag
- 자바 순위정렬
- MySQL 테이블명 바꾸기
- src/main/java
- 자바
- 자바마스터
- SpringBoot Mybatis
- 정수 자료형
- HTML
- 스프링 jsp 연결
- selection does not contain a main type
- sql 테이블명 바꾸기
- spring jsp
- html input
- 비디오 태그 이미지
- 순위정렬
- @PathVariable
- html video thumbnail
- 자바 #Java #Scanner #스캐너 #자바알파벳입력
- 스프링부트
- 정신차리고공부하자 #개발자되기 #몰입하자
- Failed to configure a DataSource
- 스프링부트 마이바티스
- 비디오 태그 썸네일
- 자바정렬
- jsp 연결
- 스프링부트 jsp 연결
Archives
- Today
- Total
쌤리
Bubble Sort, 버블 정렬, 거품정렬 본문
- 자바의 기본 정렬 중 하나인 거품 정렬을 알아보자.
- 물속에서 공기 방울이 가장 큰 거품이 맨위로 올라오는 것과 같은 이치.
※(아직 내 실력은 거품이다ㅠㅠ 거품이 생기기 조차 못함 ㅠ) - 정렬 대상인 n번째 인덱스와 n+1 인덱스의 값을 비교해서 더 큰 수를 뒤로 보내는 정렬 방법이다.
1.
3 | 1 | 2 | 4 | 6 | 5 |
int[] nums = {3, 1, 2, 4, 6, 5};
- 위와 같은 배열이 선언되었다.
- 첫 번째 인덱스에 있는 3은 이제 자기 자리를 찾기 위한 여정을 떠난다.
- 3과 1을 비교하면 3 이 1보다 크다. 3을 옆으로 보내자
1 | 3 | 2 | 4 | 6 | 5 |
- 3은 이제 2를 만났다. 3은 2보다 크니깐 2는 알아서 자리를 비켜준다.
1 | 2 | 3 | 4 | 6 | 5 |
- 3은 자기보다 작은 1과 2를 지나쳐 4를 만났다. 인생은 실전이다. 약육강식의 법칙이 적용된다.
- 3은 4보다 작다. 4를 지나갈 수 없어서 현 위치를 지키기로 했다.
- 위와 같은 상황을 아래와 같이 코드로 표현해보자
for(int i = 0; i < nums.length - 1; i++) {
if(nums[i] > nums[i + 1]) {
int temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
- 이렇게 끝! 이면 좋겠지만 6 과 5 가 남았다. 첫 번째 인덱스에 있는 숫자인 3을 자기 자리를 찾기 위한 여행을 보냈으니 나머지 2, 3, 4, 5, 번째 인덱스에 있는 숫자들을 여행 보내야 한다. 마지막 인덱스 에 있는 숫자는 여행을 갈 필요가 없다. 이미 정렬이 끝나있을테니
- 이 과정을 배열길이 만큼 다시 반복 하면 숫자들을 제자리를 찾아갈 것이다.
class Main {
public static void main(String[] args) {
int[] nums = {3, 1, 2, 4, 6, 5};
for(int j = nums.length - 1; j > 0; j-- )
for(int i = 0; i < j; i++) {
if(nums[i] > nums[i + 1]) {
int temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
}
}
※ 실행 해보도록 하자!
※ 원리를 이해하기 좋은 영상이다. 시간이 오래 걸리니 제발 2배속으로 보기를 추천한다.
'자바 JAVA > 자바 기초' 카테고리의 다른 글
생성자, constructor (0) | 2020.04.27 |
---|---|
순위 정렬, 랭킹 정렬 (2) | 2020.04.26 |
추상 클래스, abstract class (0) | 2020.04.24 |
클래스와 객체 Class & Object (0) | 2020.04.24 |
코드업 3019 풀이 (0) | 2020.04.21 |
Comments