반응형
자료구조의 정렬 알고리즘을 다시 한번 복습해보고, 소스로 구현해보기 위해 공부삼아 포스팅을 진행해보겠습니다.
자바 자체 컬렉션이나 스트림의 정렬의 도움을 받지 않고 삽입정렬, 선택정렬, 버블정렬 등을 차례대로 공부해보면서 적용해볼 예정이며, 잘 못된 방식이 있다면 답글 부탁드립니다.
먼저 선택 정렬을 통해 오름차순, 내림차순 처리를 해보겠습니다.
선택 정렬
선택정렬은 맨 앞의 인덱스부터 차례대로 값을 확인 해나갑니다.
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(", ");
}
}
}
}
반응형
'JAVA' 카테고리의 다른 글
JAVA - 문자열에 숫자만 존재하는지 확인하기 (2) | 2020.11.19 |
---|---|
JAVA - 정렬 알고리즘 삽입정렬 (0) | 2020.09.09 |
JAVA - Socket server 문자열 받기 개선(br.readLine 대신 read사용) (4) | 2020.06.23 |
JAVA - String, StringBuffer, StringBuilder 알고 쓰기 (0) | 2020.06.12 |
JAVA - log4j.properties에서 mybatis 쿼리 로그 남기기 (0) | 2020.06.11 |