2016-09-10 4 views
-4

enter image description hereJava 삽입 유형이 제대로 작동하지 않습니다.

다음 코드는 스크린 샷 링크입니다.

많은 시간을 편집하지만 출력이 완전히 정렬되지 않을 때마다 편집합니다.

+2

도움을 요청하는 질문에는 시도한 코드가 포함되어야합니다. 그리고 그들은 적절한 문제 설명을 포함해야합니다. 최소한 [[좋은 질문을하는 방법은 무엇입니까?]] (http://stackoverflow.com/help/how-to-ask)를 읽어보십시오. – Seelenvirtuose

+1

그리고 참고 : 최대한 빨리 응답을 요청하는 것은 거의 무례합니다. 그들이 올 때 대답이옵니다. 당신이 좋은 해답을 원할 경우, 좋은 질문을하십시오. 네가 ... 그렇지 않아. – GhostCat

답변

1

문제는 매우 간단합니다. k이 너무 자주 코드 내에서 증가하고 있습니다!

의미 : 이미 k로 반복 중입니다.

for (int k=0; k < a.length; k++) { // dont use hardcoded "9" here btw! 

를 다음 루프 본문에

K ++ 다시이 : 그래서 당신은 얻었다. 당신은 단순히 그렇게하지 않아도됩니다!

의미 : 귀하의 k가 빠르게 성장하고 있습니다. 그러나 k가 9에 도달하면 루프가 멈 춥니 다. 당신은 이 아니며 배열의 모든 요소를 ​​처리하는이 아닙니다!

플러스 : 삽입 정렬은 배열 을 한 번 반복 작동하지 않습니다! 모든 요소가 제자리에 위치 할 때까지 계속 반복해야합니다! 이 알고리즘에 대해 더 많이 연구하고 생각하고 싶습니다. , 그것이 우리!

그리고 말했듯이, 하드 코딩 된 제한을 배열에 사용하지 마십시오. 배열에 요소가 10 개 포함되어야한다고 이미 말했죠. 거기에서, 당신은 a.length만을 사용해야합니다! 게다가 : 루프 카운터와 같은 것들에 대해서만 한 글자의 이름을 사용하십시오. "a"는 배열의 꽤 나쁜 이름입니다. 왜 당신은 그것을 "숫자"라고 부르지 않습니까?