프로그래밍 기초 및 응용

보충 - 버블 정렬

황샐리 2022. 5. 13. 17:45

[버블 정렬]

 

알고리즘의 가장 기본적인 알고리즘이 바로 버블 정렬 알고리즘이라고 할 수 있겠습니다. 

로또 번호와 비슷한 방법으로 원리를 이해해보도록 하겠습니다.

package day0513;

import java.lang.reflect.Array;
import java.util.Arrays;

public class ArrayTest01 {
	
	public static void main(String[] args) {
		// 인덱스 번호 0  1   2 3 4  5 
		int[] arr= {36,11,22,8,17,20};
		//버블정렬
		for(int i=0 ; i<arr.length-1 ; i++) {
			if (arr[i]>arr[i+1]) {
				//위치 교환 : 임시공간에 만들어놓고 잠깐 교환.
				int temp=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=temp;
			}
			System.out.println(Arrays.toString(arr));
		}		
	}
}

36이 원래 맨 앞에 있었거든요? 근데 이게 뒤로 간다는거죠 서로 비교를 해가지고.

그러면 이 데이터들을 모두 오름차순하기 위해서는요? 이 과정을 5번 반복해야합니다. 맨 마지막숫자는 알아서 정렬될거니까요!

for 문으로 돌려줍니다.

for(int o=0; o<5; o++) {
			int[] arr1= {36,11,22,8,17,20};
			//버블정렬
			for(int i=0 ; i<arr1.length-1 ; i++) {
				if (arr1[i]>arr1[i+1]) {
			
					int temp=arr1[i];
					arr1[i]=arr1[i+1];
					arr1[i+1]=temp;
				}
				System.out.println(Arrays.toString(arr1));
			}
			System.out.println("----------------");
		}

..근데 내가 원하던 결과는 안나오는,,,, 그래서 눈물이 나는,, 암튼요.

 

그리고 버블은 가변정렬이 가능합니다.