나는 다음과 같은 문제를 해결해야합니다. 그래서 처음에는 버블 정렬이 있었고 이제는 양방향으로 만들도록 수정했습니다. 다음은 내 솔루션입니다.
public void bubbleSort() {
int temp;
int out;
int outNew = 0;
int in;
for (out = nElems - 1; out > outNew; out--) {
for (in = 0; in < out; in++) {
if (a[in] > a[in + 1]) {
temp = a[in + 1];
a[in + 1] = a[in];
a[in] = temp;
}
}
for (int j = in - 1; j > outNew; j--) {
if (a[j] < a[j - 1]) {
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
outNew++;
}
}
내 버블 정렬을 배열에서 몇 개의 난수를 정렬하도록 정렬하면 정렬이 잘된 것 같습니다. 내 질문은 오히려 모든 개발자에게 내 솔루션이 위에 게시 된 질문을 만족시키는 지 여부와이 솔루션을보다 효과적으로 만들 수있는 방법 (가능한 경우)을 다르게 수행 할 수 있는지 여부입니다. 이것이 조금 열려있는 질문이라면 유감스럽게 생각합니다. 코드를 배우기보다는 힌트와 제안을 찾고 있습니다. 나는 모든 대답에 감사 드리며 어떤 제안이든지 열려 있습니다.
내 안쪽 루프에 대해 무슨 뜻인지 알 겠어. 그래서 내 in = outNew를 설정하면 비효율을 처리 할 수 있을까? 외부 루프의 문제점은 무엇입니까? – user1010101
@ user2733436 : 죄송합니다. 내 잘못이라고 생각했는데, '밖으로> 0'이라고 생각했습니다. – fabian
처음 게시했을 때 죄송합니다. 실수로 내가 편집하여 수정했습니다. 내가 편집하기 전에 아마 내 코드를 본 것 같아. :). – user1010101