Notice
Recent Posts
Recent Comments
Link
코드로 우주평화
정렬(sort)과 탐색(search) 본문
반응형
정렬(sort)
복수의 요소로 주어진 데이터를 정해진 기준에 따라 새로 늘어놓는 작업
- 파이썬 내장 함수 sorted('리스트명') sorted('리스트명', reverse=True)
- 리스트에 쓸 수 있는 메서드 '리스트명'.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)
- 선형 탐색 (linear search), 또는 순차 탐색 (sequential search)
- 순차적으로 모든 요소들을 탐색하여 원하는 값을 찾아낸다. 찾는 값이 마지막에 있다면 오랜시간이 걸린다.
- 이진 탐색 (binary search)
- 탐색하려는 배열이 이미 정렬되어 있는 경우에만 사용. 절반씩 쪼개면서 있고 없고를 찾는 방법이다.
이진 탐색이 빠르긴 하지만 언제나 정답이라고 볼 수는 없다. 이진 탐색을 사용하려면 먼저 정렬이 되어야 하기 때문에 정렬에 대한 리소스도 감안해야한다.
반응형
'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글
이상한 문자 만들기 (0) | 2022.01.25 |
---|---|
선형배열 (0) | 2022.01.25 |
자릿수 더하기 (0) | 2022.01.24 |
자연수 뒤집어 배열로 만들기 (0) | 2022.01.24 |
정수 내림차순으로 배치하기 (0) | 2022.01.23 |