비디오: 정렬 알고리즘이 중요한 이유 2024
목록에서 항목을 먼저 정렬하지 않고 찾으려고한다고 상상해보십시오. 모든 검색은 시간 소모적 인 순차 검색이됩니다. 그러나 알고리즘에 대한 데이터를 정렬하지 않는 경우를 만들 수 있습니다. 결국 데이터를 정렬하지 않아도 데이터에 계속 액세스 할 수 있으며 정렬에는 시간이 걸립니다. 물론, 정렬되지 않은 데이터의 문제는 부엌의 쓰레기 서랍 (또는 정크 서랍이있는 곳)에서와 같은 문제입니다. 쓸데없는 서랍에 무엇이든 찾는 것은 시간이 많이 걸리는데 어디에서 무엇을 찾을 지 짐작할 수 없기 때문입니다. 손에 들어가서 원하는 것만 가져가는 것이 아니라 원하는 항목 하나를 찾기 위해 원하지 않는 무수한 다른 항목을 가져와야합니다. 불행히도, 필요한 항목은 처음에는 쓰레기 서랍에 들어 있지 않을 수도 있습니다. 쓰레기를 버리거나 다른 서랍에 넣었을 수도 있습니다.
물론, 단순히 데이터를 정렬하는 것으로는 충분하지 않습니다. 직원 데이터베이스를 성으로 정렬했지만 생년월일로 직원을 검색해야하는 경우 정렬이 유용하지 않습니다. (특정 날짜에 생일을 가진 모든 직원을 찾고 싶다고 가정합니다.) 필요한 생년월일을 찾으려면 한 번에 전체 데이터 세트를 한 항목 씩 검색해야합니다. 결과적으로 정렬은 특정 요구에 초점을 맞추어야합니다. 예, 한 번에 부서별로 그리고 다른 시간에 성으로 정렬 된 직원 데이터베이스가 필요했지만 데이터 세트를 효과적으로 사용하려면 생년월일별로 정렬해야합니다.
비교:
- 데이터 집합의 한 위치에서 다른 위치로 데이터를 이동하려면 어디로 이동해야하는지 알 필요가 있습니다 이는 대상 데이터를 데이터 집합의 다른 데이터와 비교하는 것을 의미합니다.비교가 적 으면 성능이 향상됩니다. 교환:
- 알고리즘을 작성하는 방법에 따라 데이터가 첫 번째 시도에서 데이터 세트의 최종 위치에 도달하지 못할 수 있습니다. 데이터가 실제로 여러 번 이동할 수 있습니다. 교환의 수는 속도에 상당한 영향을줍니다. 실제로 현재 메모리에서 한 위치에서 다른 위치로 데이터를 이동하기 때문입니다. 인덱스를 사용할 때와 같이 교환 횟수가 줄어들면 성능이 향상됩니다.