반응형

JS 알고리즘 문제풀이/섹션 7. 정렬과 그리디, 결정알고리즘 12

2.버블정렬

📌강의 정리 반복문을 두개 돌려서 정렬한다. 두번째 반복의 인수를 이용해서 배열의 원소를 차례로 전부 두개씩 비교한다. 두개씩 비교하며 뒤의 것이 작으면 앞과 뒤를 바꾸기 때문에 반복이 진행될때마다 제일 큰 수가 뒤로 가게된다. 📌느낀점 이번 역시 어렵지는 않았다. 단, 강사님께서는 조금이라도 횟수를 줄이기 위해 생각과 시도를 하셨다는점이 대단했다. 다 풀었다고 끝이 아니라 아주 조금이라도 복잡도를 줄이기 위해 고민해봐야한다. (특히 이런 배열관련 반복문제에서 끝까지 반복안해도 되는 경우) //나의 코드 //강사님 코드

1.선택정렬

📌강의 정리 반복문을 두개 돌려서 정렬한다. 처음의 반복에서는 i를 idx라는 이름으로 가져오고 두번째 반복에서는 idx와 j의 값을 비교해 작은 값을 idx의 값으로 지정해준다. 이렇게 반복을 돌리면 idx에는 제일 작은 j값이 들어가 있기에 구조분해할당을 써서 i와 idx의 값을 서로 바꿔준다. (이렇게 해야 원래 i에 있던값도 정렬되었을때의 제자리로 갈 수 있다.) 📌느낀점 어렵지는 않은 문제였으나 복잡도를 따지면 도저히 이해가 안되는 알고리즘이라 그 점이 힘들었다. 하지만 강사님의 코드를 보면 구조분해할당을 쓴 점과 코드의 간결함은 배울 점이 상당히 많았다. //나의 코드 //강사님 코드

반응형