2016-09-11 2 views
-4

저는 초심자이고 Java 기술을 강화하기 위해 다음과 같은 Java 연습 문제를 해결하려고합니다. 여기에 우리의 제안 16주 코스 일정에 따라 질문 ...Java에서 검색 및 정렬


이며,이 프로그램 프로젝트 그것은 최종 학년의 8 % 가치가 더 이상 주 (13)의 월요일 이상 완료되지해야 . 작업 제출에 대한 자세한 내용은 홈 페이지에있는 할당 지침 문서를 참조하십시오. 전체 코스 평가 정보는 코스 가이드에 나와 있습니다.

  1. 셸 정렬은 버블 정렬의 변형입니다. 인접한 값을 비교하는 대신 쉘 정렬은 이진 탐색의 개념을 적용하여 스왑이 수행되기 전에 값이 비교되는 '갭'을 확인합니다. 첫 번째 패스에서 간격은 배열 크기의 절반입니다. 이후의 각 패스에 대해 갭 크기가 절반으로 줄어 듭니다. 최종 패스의 경우 갭 크기는 1이므로 버블 정렬과 동일하게 이됩니다. 패스는 스왑이 발생하지 않을 때까지 계속됩니다. 다음 첫 번째 패스를 나타내는 제 18 (p.681)에서 거품 정렬 예에 따라 값들의 동일한 세트이다 :

9 6 8 12 3 1 7 - 어레이의 크기가 7, 이렇게 간극 3

6 9 8 12 3 1 7 것 -^---------^9, 12, 위해서는 아직 더 을 없다

6 9 8 12 3 1 7 - 6과 3은 순서가 맞지 않으므로 교환하십시오 ^ ---------^

9 3 8 12 6 1 7 - 8 및 1 순서가 맞지 않으므로 ^ ---------^

9 3 1 12 6 8 7-12 및 7은 순서가 맞지 않으므로 ^ ------^

9 3 8 7 6 1 12 - 나는 누군가가 나에게 직접 코드를주고 싶지 않지만 방법에 대한 의견을 부탁드립니다 1


패스의 끝 질문을 시작하기에 어려움을 겪고 있습니다. 나는 초심자이므로 진보 된 방법을 알고 있다는 것을 명심하십시오! 시간에 대한

덕분에

+0

질문에 표시된 첫 번째 단계를 구현하는 코드의 일부를 작성할 수 있습니까? – rcgldr

+0

[StackOverflow의 "여기에 대한 주제는 무엇입니까?"] (http://stackoverflow.com/help/on-topic)에서 포인트 3을 확인하십시오. 문제를 해결하기 위해 지금까지 해 온 작업의 요약을 포함시켜야합니다. –

답변

0

"나는 문제를 해결하는 방법에 대한 의견을 부탁드립니다"

첫째, 정렬 그래서 당신은 무엇을 이해 버블 정렬과 쉘에 대한 위키 백과의 기사를 읽고 그들은하고있어. 또는 "제 18 장 거품 정렬 예제 (p.681)" ....

그런 다음 과제를 다시 읽고 내용을 이해하는지 확인하십시오.

이런 식으로 구현하기위한 핵심은 먼저 을 이해하고 알고리즘을 이해해야한다는 것입니다.