나는 이렇게 학습한다/Algorithm & SQL

정렬(sort)과 탐색(search)

daco2020 2022. 1. 25. 11:29
반응형

정렬(sort)

복수의 요소로 주어진 데이터를 정해진 기준에 따라 새로 늘어놓는 작업

  1. 파이썬 내장 함수 sorted('리스트명')  sorted('리스트명', reverse=True)
  2. 리스트에 쓸 수 있는 메서드 '리스트명'.sort()  '리스트명'.sort(reverse=True)

 

특이점 sorted 함수는 원본에 영향을 미치지 않지만 sort 매서드는 원본에 수정을 가한다.

 

 

함수와 메소드의 차이점

함수는 독립적으로 정의되므로 이름으로만 호출이 가능하지만 메서드는 정의된 클래스에 종속되므로 ‘.’에 의해 호출해야한다. 함수가 메소드보다 더 포괄적인 의미를 가진다.

 

 

람다로 키를 지정하는 예

람다는 요소 x에 대해 : 우측에 지정된 기준으로 정렬한다

L = [
    {'name': 'John', 'score': 83},
    {'name': 'Paul', 'score': 92}
]

L.sort(key=lambda x: x['name']) # x['name'] 기준대로 정렬

 

 

 

탐색(search)

  1. 선형 탐색 (linear search), 또는 순차 탐색 (sequential search)
  2. 순차적으로 모든 요소들을 탐색하여 원하는 값을 찾아낸다. 찾는 값이 마지막에 있다면 오랜시간이 걸린다.
  3. 이진 탐색 (binary search)
  4. 탐색하려는 배열이 이미 정렬되어 있는 경우에만 사용. 절반씩 쪼개면서 있고 없고를 찾는 방법이다.

 

이진 탐색이 빠르긴 하지만 언제나 정답이라고 볼 수는 없다. 이진 탐색을 사용하려면 먼저 정렬이 되어야 하기 때문에 정렬에 대한 리소스도 감안해야한다.

 

 

반응형

'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글

이상한 문자 만들기  (0) 2022.01.25
선형배열  (0) 2022.01.25
자릿수 더하기  (0) 2022.01.24
자연수 뒤집어 배열로 만들기  (0) 2022.01.24
정수 내림차순으로 배치하기  (0) 2022.01.23