0
클래스가 있으며 지금은 삽입 정렬을하고 있습니다. 내 코드는 제대로 작동한다고 생각하지만 교수는 내 루프 중 하나를 삽입하지 말라고했는데 (내 배열의 값을 이동 시킴) "검색 중"해야합니다.삽입 루틴에이 루프를 포함하고 싶지 않은 이유는 무엇입니까?
public static void insertionSort(int array[]) {
int n = array.length;
for(int i = 0; i < n; i++) {
int nextIndex = i;
for(int j = 0; j < i; j++) {
if(array[nextIndex] < array[j]) {
int temp = array[nextIndex];
// ********************************
for(int k = i; k > j; k--) {
array[k]=array[k-1];
}
// ********************************
array[j]=temp;
j = i
}
}
}
}
위의 내용에는 어떤 문제가 있습니까?
코드에 메모 : 어디서든 nextIndex를 조작하지 않는 것 같습니다. 대신에'i'를 쓰거나'i''nextIndex라고 이름을 짓는 게 어떨까요? - 루프의 조건을 (다소간) 명시 적으로 false ('j = i')로 설정하는 대신,'break' 문을 사용하여 종료하는 것이 일반적입니다. 그것은 현재 루프를 조기에 빠져 나갑니다. – bleistift2