코드를 보면서 코드를 살펴보십시오.
가장 높은 순서에서 가장 낮은 순서로 정렬하려면 if (array [b] < 배열 [b + 1])가 있어야합니다. array [b]> array [b + 1]은 반대 방향으로, 가장 낮은 것부터 가장 큰 것을 수행합니다. 1, 2, 3, 5
제 1 내부 루프 :
b = 0 and array.length = 4
array[b] = 1 and array[b+1] = 2
1 is less than 2, so nothing changes
둘째 내부 루프 :
내가 숫자의 배열을 말해봐 :
현재 코드는 않습니다
b = 1 and array.length = 4
array[b] = 2 and array[b+1] = 3
2 is less than 3, so nothing changes
세 번째 내부 루프 :
b = 2 and array.length = 4
array[b] = 3 and array[b+1] = 5
3 is less than 5 so nothing changes
등등. 이렇게하면 정렬이 잘못된 방식으로 진행되고 서명을 변경해야한다는 것을 분명하게 알 수 있습니다.
이제 이것을 버블 정렬로 올바르게 구현하려면 반복 할 때마다 마지막 요소를 정렬하지 않아야합니다. 이것은 당신이하고있는 것보다 더 나은 방법이 궁금하면 거품 정렬 위키 페이지를 읽어
for (int a = 0; a < thisArray.length(); a++){
for (int b = 0; b < (thisArray.length() - a - 1); b++{
if (thisArray[b] < thisArray[b+1]){
holder = thisArray[b+1];
thisArray[b+1] = thisArray[b];
thisArray[b] = holder;
}
}
}
: 적절한 버블 정렬은 같을 것입니다. 그것의 요지는 가장 큰 숫자가 항상 뒤로 이동된다는 것입니다, 그래서 우리는 그것이 가장 큰 숫자인지 확인하기 위해 계속 볼 필요가 없습니다.
http://en.wikipedia.org/wiki/Bubble_sort
왜 정렬 알고리즘을 구현하지 않습니까? Mergesort 또는 Quicksort 같은가요? – tutak
거품 경로와 다른 것들을 사용할 수 없습니다. –
결과적으로 거품 정렬 http : //en.wikipedia를 사용하고 있습니다.org/wiki/Bubble_sort가 제대로 구현되지 않았습니다 –