정렬되어 있는 데이터와 정렬되지 않은 데이터
거의 다 정렬되어 있는 데이터와 완전히 섞여있는 데이터
어떤 데이터가 나중에 추가될지 모르는 온라인 알고리즘
이렇게 데이터 종류마다 효율적인 알고리즘이 달라짐
예를 들어 같은 데이터에 탐색을 수십만번 하는 경우가 있다면
한번 정렬하고 이진 탐색 수십만번 하는게 훨씬 좋음
정렬 뿐만 아니라 이런식으로 생각하고 최적화 하는게 필요한 경우가 있음
내가 경험한 범위 안에서는 DB 인덱스 언제 어떤 칼럼으로 만들지 결정할때 필요했음
인덱스 만들면 탐색은 빨라지는데 삽입 수정 삭제가 느려짐
이런 최적화 중에 초심자가 배우기 가장 간단하면서 나중에 활용하기도 좋은게 정렬임
그리고 다른 경험으로는 스테이블 소트를 언제 활용하는지 결정해야 될때가 있었음 상황에 따라서 추가로 정렬을 하는데 다른 칼럼의 순서가 필요 없는 경우엔 퀵소트 쓰는데 다른 칼럼들은 다 정렬되어 있고 새 칼럼 기준으로만 정렬해야 할때 스테이블 소트가 뭔지 알면 소트 하나로 끝나는데 아니면 나머지 칼럼도 다시 정렬해야되서 시간이 더 오래 걸림
솔직히 말해서 그런 거 다 안다고 써먹지도 않고 결국 시간 지나면 무의미 해지는거 같긴 한데 또 의미가 없냐고 하면 그렇진 않은거 같고... 이거 저거 시행 착오를 하면 결국 그게 몸에 배이게 되면서 포인트만 신경쓰고 습관화 되면 그게 실력 아닌가 싶음
나도 안써먹는다고 생각했는데 설계에서 중요한 부분에서는 쓰게 되서 말하는거임 그리고 저걸 모르는 사람은 시행착오 아무리 겪어도 신경쓸줄 모름
@ㅇㅇ(211.234) '되서'따위로 쓰는 병신 말 듣지 마라
생각해버면 이미 정렬된 데이터 두 개 합치는데는 O(n)이면 충분하다 << 이거 머지소트 배울 때 배우는데 생각보다 써먹을 데 좀 있는 성질인
여기 대학원 나온 고학력자 왤캐 많음 ㄷㄷ
왠 대학원? 알고리즘은 학부전공때 배운 내용이고 경험한건 DB 수업에서 쓴건데