-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
버블정렬
20.06.18 23:29 작성 조회수 111
1
버블정렬 함수를 구현하실 때 2번째 for 문에서 result.length에서 1을 안 빼는 이유가 있나요??
답변을 작성해보세요.
2
Aredra
질문자2020.07.02
안녕하세요, 먼저 친절한 답변 감사드립니다.
제가 이해를 잘못하여 다시 질문을 남깁니다.
만약 배열 중 0번째 인덱스에 가장 큰 값이 들어가게 된다면 6번 라인 result[j+1]이 undefined가 나오는 것 같은데 무관한 부분인가요?
0
-J-
지식공유자2020.11.26
안녕하세요~ 해당부분에 대한 설명이 미흡하여 재녹화 하여 업로드 하였습니다 :) ㅎㅎ
result[j+1]이 undefined가 되더라도 비교 연산자 (>) 에서 false를 반환하기 때문에 전체 알고리즘에 영향은 없는것으로 보입니다.
자세한 풀이는 영상을 새로 업로드하였으니 시간되실때 확인바랍니다! 많은 관심 감사합니다!!
0
-J-
지식공유자2020.06.24
안녕하세요 답변드리겠습니다.
2번째 for문의 역할은 배열안의 각 원소와 그 다음 원소의 크기를 비교하여 자리를 바꾸는데 있는데요,
2번째 for문이 한 번 회전 할 때마다, 배열안의 원소가 제일 큰 것부터 1개씩 자리를 '확정적'으로 잡기 때문입니다.
때문에 for문이 돌면 돌 수록 원소들이 하나씩 자리를 확정하게 되고, 때문에 우리는 연산 시간을 아끼는 측면에서 -1 이 아닌 i값을 빼면서 for문이 돌아야 하는 횟수를 줄여주는 것이지요.
답변이 도움이 됐으면 좋겠습니다.
감사합니다!
답변 3