본문 바로가기
JAVA

Test110.java / 정렬(sort) 알고리즘 / 버블 정렬(Bubble Sort)

by universedevelope 2022. 10. 22.
/*==================================
  ■■■ 정렬(sort) 알고리즘 ■■■
==================================*/

/*
○ 정렬
   : 데이터를 특정한 규칙(기준)에 맞게 순서대로 나열(오름차순, 내림차순)

○ 정렬의 목적
   : 데이터 처리 과정의 편의성이나 가독성을 높이기 위함
     → 보기 좋게... 검색하기 위함

○ 정렬의 종류
   : 선택 정렬, 버블 정렬, 삽입 정렬, 힙 정렬, 퀵 정렬, 쉘 정렬,  . . . . .

// 버블 정렬(Bubble Sort)

// 실행 예)
// Source Data : 52 42 12 62 60
// Sorted Data : 12 42 52 60 62		-- 오름차순 정렬하고싶음.. 어케할까?
*/
public class Test110
{
	public static void main(String[] args)
	{
	int [] a = {52, 42, 12, 62, 60};		
	
	/*
	52, 42, 12, 62, 60
	--  --
	42, 52, 12, 62, 60
	    --  --
	42, 12, 52, 62, 60
     		--  --   
	42, 12, 52, 60, 62
	----------------------- 1회전
	42, 12, 52, 60, 62
	--  --
	12, 42, 52, 60, 62
	    --  --    
	12, 42, 52, 60, 62
		        --  --
	----------------------- 2회전
	12, 42, 52, 60, 62
	--  --
	12, 42, 52, 60, 62
	    --  --
    ----------------------- 3회전
	12, 42, 52, 60, 62

	*/




	for (int n  : a )
		System.out.printf("%4d", n);
	System.out.println();


	//-------------------------------------
	// Bubble Sort

	for (int i = 1 ; i < a.length ; i++)			// 뒤에서 비교 대상을 하나씩 줄여주는 역할
	{												//  1      2     3     4

		for (int j = 0; j < a.length-i ; j++ )		//  0123   012   01    0 (비교기준자리) vs 1234    123    12    1
		{
			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];
				

				

			}
		}
		
	}


	for (int k  : a )
		System.out.printf("%4d", k);
	System.out.println();
	}
}

// 실행 결과 
/*
  52  42  12  62  60
  12  42  52  60  62
계속하려면 아무 키나 누르십시오 . . .
*/
728x90

댓글