반응형

자료구조의 정렬 알고리즘을 다시 한번 복습해보고, 소스로 구현해보기 위해 공부삼아 포스팅을 진행해보겠습니다.

 

자바 자체 컬렉션이나 스트림의 정렬의 도움을 받지 않고 삽입정렬, 선택정렬, 버블정렬 등을 차례대로 공부해보면서 적용해볼 예정이며, 잘 못된 방식이 있다면 답글 부탁드립니다.

 

먼저 선택 정렬을 통해 오름차순, 내림차순 처리를 해보겠습니다.

 

선택 정렬

선택정렬은 맨 앞의 인덱스부터 차례대로 값을 확인 해나갑니다.

n, n+1을 비교하고 만족하면 서로의 위치를 교체해주는 방식입니다.

 

 

조건문에 따라 내림차순 오름차순 결과값을 확인 할 수 있습니다.

public class Sorting1 {
	public static void main(String[] args) {
		int[] arr = {42, 456, 7898, 156, 123, 77, 9, 498, 2142, 2, 3, 241, 65756, 553, 767};
		
		for(int i=0; i<arr.length; i++) {
			for(int j=i+1; j<arr.length; j++) {
				if(arr[i] > arr[j]) { //오름차순
					int tmp = arr[i];
					arr[i] = arr[j];
					arr[j] = tmp;
				}
			}
		}
		
		for(int i=0; i<arr.length; i++) {
			System.out.print(arr[i]);
			if(i+1 != arr.length) {
				System.out.print(", ");
			}
		}
	}
}

 

public class Sorting1 {
	public static void main(String[] args) {
		int[] arr = {42, 456, 7898, 156, 123, 77, 9, 498, 2142, 2, 3, 241, 65756, 553, 767};
		
		for(int i=0; i<arr.length; i++) {
			for(int j=i+1; j<arr.length; j++) {
				if(arr[i] < arr[j]) { //내림차순
					int tmp = arr[i];
					arr[i] = arr[j];
					arr[j] = tmp;
				}
			}
		}
		
		for(int i=0; i<arr.length; i++) {
			System.out.print(arr[i]);
			if(i+1 != arr.length) {
				System.out.print(", ");
			}
		}
	}
}

반응형