코드일기장

Java로 이용한 버블정렬 본문

컴퓨터 과학/자료구조

Java로 이용한 버블정렬

codeStudy123 2021. 11. 14. 14:44

  배열과 관련된 정렬이다. 정렬은 물건을 크기순으로 나열하는 것을 의미한다.

예를 들면, 도서관에 가보면 책들이 주제, 제목, 저자 또는 발간 연도순으로 정렬해 놓은 것을 볼 수 있다. 이러한 정렬 덕분에 우리는 도서관에서 내가 읽고 싶은 책이 어디에 있는지 유추할 수 있고 빠르게 찾아낼 수 있다. 

 

 

 

  정렬컴퓨터 공학 분야에서 가장 기본적이고 중요한 알고리즘이다. 특히 일상생활에서도 많이 쓴다. 네이버페이로 쇼핑을 한다고 생각해보자 보통 사람들은 평점을 내렴 차순으로 정렬해 별점이 가장 높은 물건이 무엇인지 알고 싶어  할 것이다. (혹은 제일 싼 물건) 이처럼 정렬은 제일 많이 쓰이고 제일 중요한 알고리즘이다.  버블 정렬을 깊게 알아보기 전,  버블 정렬 관련 유튜브 영상을 한 개 올려주겠다.

 

https://www.youtube.com/watch?v=lyZQPjUT5B4 

버블정렬 관련 영상

 

 

Java코드를 이용해 버블정렬이 어떤 식으로 구동되고 어떤 식으로 짜야하는지 알아보자.

 

public class Main{
	public static void main(String[] args) {
		int[] bubbletest	= {10,50,40,30,20};
		for(int k=0;k<bubbletest.length;k++) {
			for(int i=0;i<bubbletest.length-1;i++) {
				if(bubbletest[i]>bubbletest[i+1]) {
					int tmp=bubbletest[i];
					bubbletest[i]=bubbletest[i+1];
					bubbletest[i+1]=tmp;
				}
				
			}
			
		}
		System.out.print("[");
		for(int i=0;i<bubbletest.length;i++) {
				
				System.out.printf("%d ",bubbletest[i]);
			
				
			}
		System.out.print("]");
		
	}
	
	
	
}

bubbletest []라는 배열의 초기 값은 매우 불규칙적이다. 하지만 버블 정렬을 이용하면 매우 깔끔하고 보기 쉽게 정렬할 수 있다. 본 코드의 유일한 if문을 자세히 보자

 

if문은 bubbletest[i]>bubbletest[i+1] 이면

tmp변수에 더 큰 값인 bubbletest[i]로 초기화해준다.

더 큰 값  bubbletest [i]는  더 작은 값인 bubbletest [i+1]로 바꿔준다. 

더 작은 값이었던  bubbletest [i+1]은 큰 값을 저장시켜놓은 tmp변수로 바꿔준다. 

그럼 큰 값이 작은 값보다 index가 1 증가할 것이고 작은 값은 index가 1이 감소한 자리에  있을 것이다.

 

 

[10,50,40,30,20]이었던 배열이 오름차순으로 깔끔하게 정렬된 것을 확인할 수 있다.

 

 

 

 

대표사진 출처:https://www.urbanbrush.net/downloads/%EB%B3%B4%EA%B8%80%EB%B3%B4%EA%B8%80-%EC%9D%BC%EB%9F%AC%EC%8A%A4%ED%8A%B8-ai-%EB%AC%B4%EB%A3%8C%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C/

Comments