본문 바로가기

📚Study Note/JAVA

[ JAVA ]정렬 (Sort) 알고리즘 : 버블 정렬 (Bubble Sort)

 

<버블정렬의 정렬방법>

 

 

52, 42, 12, 62, 60 → 0 1
======
52, 12, 52, 62, 60 → 1 2
    ======
52, 12, 52, 62, 60 → 2 3
         ======
52, 12, 52, 60, 62 → 3 4
            ======
------------------------------------------------------1회전
12, 42, 52, 60, 62 → 0 1
    ======
12, 42, 52, 60, 62 → 2 3
         ======
    12, 42, 52, 60, 62 → 3 4
             ======
----------------------------------------------------- 2회전

    12, 42, 52, 60, 62 → 0 1
    ======

12, 42, 52, 60, 62 → 1 
            ======
----------------------------------------------------- 3회전
        

    12, 42, 52, 60, 62 → 0 1
    ======

----------------------------------------------------- 4회전

 

 

 

 

public class Test103
{
	public static void main(String[] args)
	{
		int[] a = {52, 42, 12, 62, 60}; //버블은 선택정렬과 다르게 가장 왼쪽이 아닌 가장 오른쪽이 fix된다

		
		int i,j;

		System.out.print("Source Data : "  );
		


		// 향상된 for 문 또는 forEach구문
		for (int n:a) // 가장 첫번째로 처리하는 부분은 : ←의 오른쪽부분
			System.out.print(n + " ");
		System.out.println();


		// Bubble Sort 구현

		for (i=1; i<a.length; i++) //  1234 //a,length-i에서 뺄셈을 해주는 효과
		{
			for (j=0; j<a.length-i; j++)  0123, 012, 01, 0
			{
				if (a[j] >a[j+1])
				{
					a[j] = a[j]^a[j+1]
					a[j+1] = a[j+1]^a[j]
					a[j] = a[j]^a[j+1]
				}


			}
		}

		//결과물 출력
		System.out.print("Sorted Data : ");

		for (int n:a) // a배열에서 하나씩 꺼내서 int n 이라는 변수에 담아서 처리해라
			System.out.print(n + " ");
		System.out.println();





	}
}