BeadSort

김지민·2023년 4월 28일
0

코드리뷰

목록 보기
1/3

SORT

java 언어 알고리즘 중 sort에 대하여 코드 리뷰.
그 중 BeadSort에 대하여 리뷰
양수만 사용할 수 있는 특징을 가지고 있다.

int[]인 unsorte를 argument로 받으며 리턴 값은 int[]인 sort 메서드에서 정리를 하고 있다.

int[]로 sorted 객체를 선언함과 동시에 unsorted.length의 크기만큼을 할당하고 있다.

0으로 초기화된 변수 max를 for문 안에서 Math클래스의 max(최댓값을 고르는 메서드)를 사용해서 unsorted의 각 int 값들과 max들의 값을 비교한다.

다음 반복문으로 양수만 뽑을 수 있다.
max는 parameter로 넘어온 배열에서 가장 큰 값이 할당된다.

이차원 배열의 객체인 grid에 각 일차원 배열의 길이를 [unsorted.lenght], [max]로 선언 및 할당한 후.
일차원 배열인 count도 max의 길이만큼 선언과 동시에 할당하고 있다.

grid에 각 크기만큼의 for(반복문)을 돌려서 grid[i][j]에 해당되는 값에 '-'를 할당한다.

grid의 모든 값에 다 '-'를 할당한다.

count의 모든 값들을 다 0으로 초기화한다.

두 번째 for문에서는 unsorted[i]에서 양수의 값만 출력한다.

count의 경우는 unsorted[]에서 가장 큰 값의 길이로 할당이 되어있어 'java.lang.IndexOutOfBoundsException'가 나오지 않는다.
배열 count안에 값이 0으로 다 초기화되었기에
[max- k- 1]이 무엇이든 간에 [0][k]로 시작된다.

j < max && grid[unsorted.length - 1 - i][j] == ''; 에서 max의 크기보다 적게 그리고 grid[][] == ''가 인 부분만 k를 증가한다. 즉, unsorted에서의 양수의 값만 증가시켜서
리턴한다.

출처:

https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BeadSort.java
profile
한 단계씩 차근차근

0개의 댓글