study/코드리뷰

0313 코드리뷰 Q4. 배열 올림차순으로 정렬해서 출력하기

달거북씨 2022. 3. 15. 17:13

Q4. 문제. 정수 배열을 입력받아 올림차순으로 정렬해 출력하는 메서드를 만드시오.

 

예) int arr = { 5, 3, 4, 2, 1 }

Lineup(arr);

결과: 1 2 3 4 5

 

힌트1. 배열을 입력받는 메서드는 다음과 같이 생성하면 된다.
public static void Method(int[] arr)
  
힌트2. 
선택정렬의 과정 : https://drive.google.com/file/d/1SUzKO-23atNmWn9L71l5k-ENIK45q19l/view?usp=sharing
선택정렬"은 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.
주어진 배열 중에 최소값을 찾는다.
-> 그 값은 맨 앞에 위치한 값과 교체한다.

-> 맨 처음 위치를 뺀 나머지 배열을 같은 방법으로 교체한다. 

 

▶ 13일 스터디 중 가장 어려웠던 문제였다.

 

 

 

A4-1. 달거북씨 코드

public class MKY_ArrayQ {
	
	public static void main(String[] args) { 
		int[] arr = {20, 1, 9, 11, 7};
		ascending(arr);
		
	}
	
	public static int[] ascending(int[] arr) {
		for(int i=0; i<arr.length-1; i++) {	// 4번만 비교하면 됨
	        for(int j=i+1; j<arr.length; j++) {	// 배열의 끝까지 비교
	            if(arr[i]>arr[j]) {
	                int temp = arr[i];
	                arr[i] = arr[j];
	                arr[j] = temp;
	            }
	        }
	    }
		for(int i=0;i<arr.length;i++){	// 정렬된 배열을 하나씩 출력하기 위한 for문
			System.out.print(arr[i] + " ");
		}
		return arr;
	}
}

▶ 하하

▶ 선택정렬은 이해했는데 배열 내에서 움직이는 방법을 왜 죽어도 모르겠을까.

▶ 처음엔 인터넷을 뒤져서 이것저것 코드를 복사해 와서 완성했다. 문제는 출력은 제대로 되는데 왜 되는지 모르겠다는거...

▶ 다른 분들의 코드리뷰를 듣고 다시 만든 코드다.

 

 

 

728x90