2017-02-09 2 views
1

이러한 정렬 방법을 역전시키는 방법에 대해 혼란 스럽습니다. 어떤 도움을 주시면 감사하겠습니다. 나는 찾아보고 연구를 시도했지만이 유형의 비교 목록과 관련이 없습니다. if (list[scan].compareTo(list[min]) < 0) if (list[scan].compareTo(list[min]) > 0) 에가 반대 순서로 정렬합니다 :두 정렬 알고리즘 모두 값을 내림차순으로 배치합니다. 그런 다음 드라이브 클래스를 만들어 두 알고리즘을 테스트하십시오.

public class Sorting 
{ 

    public static void selectionSort(Comparable[] list) 
    { 
     int min; 
     Comparable temp; 

     for (int index = 0; index < list.length-1; index++) 
     { 
     min = index; 
     for (int scan = index+1; scan < list.length; scan++) 
      if (list[scan].compareTo(list[min]) < 0) 
       min = scan; 

     temp = list[min]; 
     list[min] = list[index]; 
     list[index] = temp; 
     } 
    } 

    public static void insertionSort(Comparable[] list) 
    { 
     for (int index = 1; index < list.length; index++) 
     { 
     Comparable key = list[index]; 
     int position = index; 

     while (position > 0 && key.compareTo(list[position-1]) < 0) 
     { 
      list[position] = list[position-1]; 
      position--; 
     } 

     list[position] = key; 
     } 
    } 
} 

답변

0

난 당신이 변경되면 생각합니다.

int compareTo(T o)

Here is the api

는이 오브젝트와 지정된 오브젝트의 순서를 비교. 이 객체가 지정된 객체보다 작거나 같거나 큰 경우 음수, 0 또는 양의 정수를 반환합니다.

+0

고마워요! 이것은 선택 정렬을 위해 작동하지만, 삽입 정렬은 여전히 ​​나에게 수수께끼입니다. – azamaryk

+0

은'key.compareTo (list [position-1])> 0을 으로'charing'key.compareTo (list [position-1])> 0'을 작동합니까? – slcott

+0

그럴 수 있습니다. 이것은 내가 스스로를 믿는 것보다 더 간단했다. 고마워요! – azamaryk