WebAppers에서 "Showing How Each Sorting Algorithm Operates"라는 재미난 사이트 소개가 있어서 공유합니다. 이 사이트는 소팅(Sorting) 알고리즘을 여러가지 상황별로 어떤식으로 동작하고 성능에 어떤 차이가 있는지를 시각적으로 보여주는 사이트입니다.
학생때 정렬에 대해서 배우느라고 고생했던 기억이 납니다. 전산과를 나오셨으면 모두 그런 기억은 있을듯 합니다. 저는 학생때는 워낙 공부를 안해서 더 고생했었는지는 모르겠네요. 소팅하면 버블정렬, 삽입정렬, 머지정렬, 퀵정렬들 많은 알고리즘들이 있고 현업에 와서는 실제로 정렬을 구현한다거나 할일은 별로 없었기는 하지만 그래도 알고 있으면 도움이 되지 않을까 합니다. 시간 지나면 이름만 기억나고 어떤 방식인지가 잘 기억안나기도 하는데 그럴때 도움이 될 듯 합니다.
Sorting Algorithm Animations라는 사이트입니다.
사이트의 캡쳐화면입니다. 처음엔 보고 무엇인가 했습니다. 가로축에는 각 정렬 알고리즘들이 있고 세로축에는 데이터가 정렬된 방식이 있습니다. 각 셀을 선택하거나 아니면 비교를 하려면 각 줄에 있는 화살표 아이콘을 클릭하면 각 알고리즘이 정렬되는 알고리즘을 볼 수 있습니다. 상단에서 데이터의 양이나 속도등을 조절할 수 있고 애니메이션을 시작하면 화살표가 왔다갔다 하면서 정렬 알고리즘이 어떤 식으로 정렬을 수행하는지를 볼 수 있고 동시에 진행시키면 어떤 알고리즘이 어떤 상황에 적합한지도 비교해 볼 수 있습니다.
뻔하긴 하지만 이 사이트의 결론은 "There is no algorithm that has all of these properties, and so the
choice of sorting algorithm depends on the application."이군요. 상황에 따라 알아서 알고리즘을 써라. 군요.. ㅎ
정렬 공부하실 분은 참고하시면 좋을 듯 하네요.
와우 정보의 폭이 넓어요 ㅋㅋ
요새 계속 개발 삽질중이라 ㅠㅠ 흑..
정렬알고리즘들 10년만에 들어본거같네여 ㅡㅡ;;
저도 수년만에 들어본것 같습니다.
다른 사람은 많이 쓸지도 모르겠지만 저는 별로 쓸일은 없더군요. 앞으로도.. ㅎㅎㅎ
그냥 예전 생각나서 반가운 맘에 포스팅한겁니다. 정렬배울때 저런걸 봤으면 좀 이해가 잘 됐을것 같아서요. ㅎ
어쨌든 오랜만에 뵙네요. ^^