(0. 정렬 전 배열 선언)
1
2
3
4
5
|
int[] arr={0, 10, 40, 20, 50};
System.out.println("정렬 전:");
for(int i:arr){
System.out.print(i+" ");
|
cs |
1.선택정렬: 맨 처음 고정, 맨 마지막까지 비교 → (n-1)번 실행
(1-1. 오름차순)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//오름차순(ASC)
System.out.println("\n오름차순 정렬 후:");
for(int i=0;i<arr.length-1;i++) {
for(int j=i+1;j<arr.length;j++) { //j:비교하는 숫자, i번째의 오른쪽=>i+1
if(arr[i]>arr[j]) {
int tmp=arr[i]; //변수값 서로 바꿀때는 tmp에 미리 값 1개 옮겨놓기!
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
for(int i:arr) {
System.out.print(i+" ");
}
|
cs |
(1-2. 내림차순)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//내림차순(DESC)
System.out.println("\n내림차순 정렬 후:");
for(int i=0; i<arr.length-1; 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:arr){
System.out.print(i+" ");
}
|
cs |
2.버블정렬: 맨 마지막 고정, 두 자리씩 비교 → (n-1)번 실행
(2-1. 오름차순)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//오름차순(ASC)
System.out.println("\n오름차순 정렬후:");
for(int i=0;i<arr.length-1;i++) {
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]) {
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
for(int i:arr) {
System.out.print(i+" ");
}
|
cs |
(2-2. 내림차순)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//내림차순(DESC)
System.out.println("\n내림차순 정렬후:");
for(int i=0;i<arr.length-1;i++) {
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]<arr[j+1]) {
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
for(int i:arr) {
System.out.print(i+" ");
}
|
cs |
결과창)
'Java > Java 알고리즘' 카테고리의 다른 글
[Java] 페이지 나누기 (0) | 2020.07.09 |
---|---|
[Java] 가위바위보 게임 (0) | 2020.07.06 |
[Java] 중복없는 난수발생 (1) | 2020.07.03 |
[Java] 달력 만들기 / 시간 표시 (2) | 2020.07.02 |
댓글