오늘공부한것

[TIL_Java] 배열 오름차순/내림차순 정렬하기 (Sorting)

Cune 2021. 12. 10. 11:23

 

Today I Learned

 

	Scanner sc	= new Scanner(System.in);
			
	//갯수 결정 
	System.out.println("정렬하기 원하는 숫자의 갯수를 입력하세요 : ");
	int num = sc.nextInt();
	int [] array = new int[num];
			
	//숫자 입력 
	for(int i = 0; i < array.length; i++) {
		System.out.println( (i+1) + "번째 숫자를 입력하세요 : ");
		int iNum = sc.nextInt();
		array[i]= iNum;	//입력받은 숫자를 배열에 넣기
	}
			
	//오름차순,내림차순 결정 
	System.out.println("오름차순 정렬을 원한다면 1을, 내림차순 정렬을 원하다면 2를 입력하세요 :");
	int upDown = sc.nextInt();
	if(upDown == 1) { 			//오름차순 정렬 
		int temp1;	//잠깐 값을 저장해둘 임의 변수 설정
		for(int i = 0; i < array.length; i++) {
					
			for(int j = i+1; j < array.length; j++) {
						
				if(array[i] > array[j]) {
					temp1 = array[i];
					array[i] = array[j];
					array[j] = temp1;
                    //저장해둔 array[i]값을 array[j]에 넣기
				}
			}
		}
			System.out.println(Arrays.toString(array));
            
	} else {		//내림차순 정렬 
    		int temp2;
		for(int i = 0; i < array.length; i++) {				
			for(int j = i+1; j < array.length; j++) {			
				if(array[i] < array[j]) { 
					temp2 = array[i];
					array[i] = array[j];
					array[j] = temp2;
				}
			}	
		}
			System.out.println(Arrays.toString(array));	//배열 출력
	}

정렬 부분 if문은 강사님께서 정렬방법에 대해 알려주신부분을 사용하였고 전체적인 흐름은 직접 짰다.

if문 정렬과정에서 temp변수에 잠시 값을 하나 저장해두고 서로 바꾸는 흐름만 이해한다면 그리 어렵지 않은 듯 하다.


1. 배열에 들어갈 값의 갯수 입력받기

2. 배열에 들어갈 값을 하나씩 입력받기

3. 오름차순/내림차순 어떤 방식으로 정렬할지 선택 입력받기

4. 선택받은 방식으로 정렬하기