> 백엔드 개발 > 파이썬 튜토리얼 > 파이썬의 정렬 및 검색

파이썬의 정렬 및 검색

Jennifer Aniston
풀어 주다: 2025-03-07 11:35:12
원래의
444명이 탐색했습니다.

Sorting and Searching in Python 당신은 당신이 당신의 손에 1,000 개의 이름이 나열된 종이를 가지고 있다고 상상해보십시오. 그 중 하나를 찾아야하지만이 목록은 알파벳 순서가 아닙니다. 매우 실망스럽지 않습니까? 이 목록을 정렬하는 데 시간이 오래 걸리지 만 이름을 찾는 것이 훨씬 쉬워집니다. 따라서 사물을 분류하는 것은 인간의 자연스러운 욕망이며, 분류 된 목록을 찾는 것은 분명히 정렬되지 않은 목록을 검색하는 것보다 더 노동 절약입니다.

컴퓨터 세계에서 검색 목록은 매우 클 수 있으며 빠른 컴퓨터조차도 성능에 영향을 줄 수 있습니다. 이 경우 적절한 정렬 및 검색 알고리즘이 그러한 문제에 대한 해결책이 될 것입니다. 정렬은 순서대로 값 목록을 정렬하는 프로세스이며 검색은 목록에서 값의 위치를 ​​찾는 프로세스입니다.

이 문제의 중요성을 설명하기 위해 미국 컴퓨터 과학자 인 Donald Knuth가 다음과 같이 말한 것을 보여 드리겠습니다.

1960 년대의 컴퓨터 제조업체는 모든 고객을 고려할 때 컴퓨터 런타임의 25% 이상이 정렬에 사용 된 것으로 추정했습니다. 실제로 많은 설치 사례에서 분류 작업은 계산 시간의 절반 이상을 차지합니다. 이러한 통계로부터, 우리는 (i) 분류에 많은 중요한 응용 프로그램이 있거나 (ii) 많은 사람들이하지 말아야 할 때 분류하거나 (iii) 비효율적 인 정렬 알고리즘이 널리 사용되었다고 결론을 내릴 수 있습니다. —— "컴퓨터 프로그래밍 기술"볼륨 3 : 정렬 및 검색, 페이지 3

이 튜토리얼에서는 선택 분류 알고리즘과 선형 검색 알고리즘을 구현하는 방법을 보여 드리겠습니다.

그러나 시작하기 전에 파이썬 코드를 정렬하고 검색하려면 내장 방법을 보여 드리겠습니다.

내장 정렬 방법 및 Python의 함수 Python을 사용하여 많은 정렬 알고리즘을 만들 수 있습니다. 이것은 좋은 학습 운동이지만 생산 응용 프로그램의 경우 파이썬의 내장 기능 및 방법을 고수해야합니다.

Python에는 목록을 내내에서 정렬하는 데 사용할 수있는

메소드가 있습니다. Python의 무대 뒤에서 사용되는 분류 알고리즘을 Timsort라고합니다. 많은 실제 수명에서 탁월한 성능을 제공하는 삽입 분류 및 병합 분류를 기반으로 한 하이브리드 분류 알고리즘입니다. 이 두 기능과 방법을 사용하는 방법의 예는 다음과 같습니다. 위 코드의 일부 상황을 알 수 있습니다. 함수는 원래 목록을 변경하지 않고 새 정렬 된 목록을 반환합니다. 그러나 원래 목록은 동일하게 유지됩니다. 반면에, 우리가 에서

메소드를 호출하면 를 반환합니다.

분류 동작을 수정하기 위해 일부 매개 변수를 전달할 수 있습니다. 예를 들어, 함수를

매개 변수로 전달하여 매개 변수없이 알파벳순으로 단어 목록을 정렬합니다. 두 번째 경우, 우리는 reverse를 사용하여 정렬 된 단어의 순서를 뒤집습니다. sorted() 정렬 알고리즘을 선택하십시오 SELECT SORM SORT reverse=True 알고리즘은 최소 또는 최대 값의 연속 선택을 기반으로합니다. 오름차순 순서로 정렬하고자하는 목록이 있다고 가정 해 봅시다. 가장 작은 요소는 목록의 시작 부분에 있으며 가장 큰 요소는 목록의 끝에 있습니다.

원래 목록이 다음과 같이 보인다고 가정하십시오

우리가해야 할 첫 번째 일은 목록에서

최소 값을 찾는 것입니다. 최소값이 발견되면 최소값을 목록의 첫 번째 요소로 교환하십시오. 즉, 와 교환합니다. 목록은 이제 다음과 같습니다

목록에서 첫 번째 요소의 올바른 위치를 결정 했으므로 목록의 두 번째 요소에서 위의 단계 (최소값 찾기)를 반복합니다. 목록의 최소값 (두 번째 요소부터 시작)이 | 7 | 5 | 3.5 | 4 | 3.1 |임을 알 수 있습니다. 그래서 우리는 이제 를 로 교환 할 것입니다. 목록은 이제 다음과 같습니다.

이 시점에서 첫 번째 요소와 두 번째 요소가 올바른 위치에 있는지 확인합니다. 이제, 우리는 목록의 나머지 부분에서 최소값을 확인합니다. 나머지 목록의 최소값은 이며, 이제 3.1로 바꿉니다. 따라서 목록은 다음과 같습니다

따라서, 우리는 이제 처음 세 가지 요소가 올바른 위치에 있고 프로세스가 이러한 방식으로 계속된다고 결정합니다. Python에서 선택 분류 알고리즘을 구현하는 방법을 보자 : 위의 스크립트 끝에서 다음 문장을 추가하여 알고리즘을 테스트합시다. 3.1 이 경우 다음 출력을 가져와야합니다. 7

선형 검색 알고리즘 선형 검색

알고리즘은 원하는 항목이 발견되거나 목록의 끝에 도달 할 때까지 목록의 각 항목이 확인되는 간단한 알고리즘입니다 (첫 번째 항목에서 시작). | 3.1 | 5 | 3.5 | 4 | 7 | 선형 검색 알고리즘은 파이썬에서 다음과 같이 구현됩니다 (Python School 기반) :

코드를 테스트합시다. 위의 파이썬 스크립트 끝에 다음 문을 입력하십시오.

입력 할 때 가 단일 또는 이중 인용문 사이에 있는지 확인하십시오 (즉, ). 예를 들어, 를 입력하면 다음 출력을 가져와야합니다. 3.5 3.5 그리고 입력대로 5를 입력하면 다음 출력이 나타납니다.

Oops, your item seems not to be in the bag

결론 우리가 본 바와 같이, Python은 여기서 정렬 및 검색 알고리즘을 다루는 것처럼 알고리즘의 개념을 쉽게 프로그래밍 할 수있는 프로그래밍 언어로 다시 입증됩니다.

다른 유형의 분류 및 검색 알고리즘이 있음에 주목해야합니다. Python을 사용하여 이러한 알고리즘을 더 깊이 파고 싶다면 무료 Python 객체 지향 프로그래밍 교과서를 참조하십시오.

위 내용은 파이썬의 정렬 및 검색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿