본문 바로가기

📚Study Note/JAVA

[ JAVA ] 정렬 (Sort) 알고리즘 : 선택 정렬 (Selection Sort)

● 정렬이란?
: 데이터를 특정한 규칙(기준)에 맞게 순서대로 나열(오름차순 , 내림차순)
● 정렬의 목적
: 데이터 처리 과정의 편의성이나 가독성을 높이기 위함
→ 보기 좋게... 검색하기 위함.
※ 정렬은... 리소스 소모가 심하다. 
● 정렬의 종류
: 선택정렬, 버블정렬, 삽입정렬, 힙정렬, 쉘정렬, 퀵정렬 .... 이외에도 많다.

 

<선택정렬>

 

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

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

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

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

import java.util.Scanner;
public class Test102
{
	public static void main(String[] args)
	{ 
		int[] a = {52, 42, 12, 62, 60};

		int i,j;

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

		
		
		/*for (i=0; i<a.length; i++)
		{
			System.out.print(a[i] + " ");
		}
		System.out.println();*/

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


		// Selection Sort 구현

		for (i=0; i<a.length-1; i++)  // i →  0 1 2 3
		{
			for (j=i+1; j<a.length ; j++) // j → 0 : 1234  1:234 2:34 3:4
			{
				if (a[i] > a[j])
				{
					a[i] = a[i]^a[j];
					a[j] = a[j]^a[i];
					a[i] = a[i]^a[j];
				}

			}
		}



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

		for (int n:a) 
			System.out.print(n + " ");
		System.out.println();





	}
}