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;
}
}
}
고마워요! 이것은 선택 정렬을 위해 작동하지만, 삽입 정렬은 여전히 나에게 수수께끼입니다. – azamaryk
은'key.compareTo (list [position-1])> 0을 으로'charing'key.compareTo (list [position-1])> 0'을 작동합니까? – slcott
그럴 수 있습니다. 이것은 내가 스스로를 믿는 것보다 더 간단했다. 고마워요! – azamaryk