JAVA 프로그래밍

문제

제네릭 메서드를 바탕으로 점수 및 단어를 정렬하는 문제입니다 이를 해결하는 다음 프로그램을 해석하세요 
86 89 90
apple banana carrot 

알고리즘

프로그램 시작 
   먼저, 점수 정렬 후 출력
   단어 정렬 후 출력
프로그램 종료

정렬
   마지막 칸에 가장 큰 값을 저장하면서 한칸씩 앞으로 영역 좁혀가기
      영역의 첫번째 칸부터 인접한 두 값을 비교하면서
      앞이 뒤보다 크면 두 값을 맞바꾸기하면서 뒤쪽에 큰 값을 저장

프로그램 코드

	// 파일명 : ./Chapter19/GenericMethodMain.java
	 
	public class GenericMethodMain
	{
		// 정렬 
Fb		public static <T extends Comparable<T>> void sort( T[] list ) {
			// 마지막 칸에 가장 큰 값을 저장하면서 한칸씩 앞으로 영역 좁혀가기 
			for ( int last = list.length - 1; last >= 0; last-- ) {
				// 영역의 첫번째 칸부터 인접한 두 값을 비교하면서  
				for ( int index = 0; index < last; index++ ) {
					// 앞이 뒤보다 크면 두 값을 맞바꾸기하면서 뒤쪽에 큰 값을 저장  
					if ( list[ index ].compareTo( list[ index + 1 ] ) > 0 ) {
						T temp = list[ index ];
						list[ index ] = list[ index + 1 ];
						list[ index + 1 ] = temp;
					}
				}
			}
Fe		}
		 
		// 프로그램 시작  
1		public static void main( String[] args ) {
			// 먼저, 점수 정렬 후 출력   
			Integer[] scores = new Integer[]{ 90, 89, 86 };
2			sort( scores );
			for( int score : scores )
			    System.out.print( score + " "  );
3			System.out.println();
	 
			// 단어 정렬 후 출력  
			String[] words = new String[]{ "carrot", "banana", "apple" };
4			sort( words );
			for( String word : words )
			    System.out.print( word + " "  );
	 
			// 프로그램 종료   
5		}
	}

실행 순서

 
 					※ 실행순서 및 메모리상태는 A키(이전) 및 D키(다음)를 눌러도 확인할 수 있습니다