버블 정렬 기본 Python3의 알고리즘을 정렬, 삽입 정렬, 선택 정렬

  시간에 따라 기본 정렬 알고리즘의 복잡성 분류

  O (n ^ 2)

  버블 정렬

  삽입 정렬

  선택 정렬

  Q는 (N 로그 n)

  분할 통치

  빠른 정렬

  일종의 병합

  버블 정렬

  두 인접하는 요소의 비교가 추진 다수 후, 트래버스 전체 목록 후 목록의 최대 버블 끝에 항목 I에 배치된다.

  라이트 버블 정렬의 예를 다음

  DEF 버블 (SL)

  "" "

  거품 정렬, O (N ^ 2)

  트래버스 후에 두 개의 인접한 소자 큰 푸쉬 전체에서의 비교는 상기 아이템리스트의 말미에 최대 버블 링 방식으로 배치된다

  : PARAM의 SL : 목록

  :반환:

  "" "

  대 전 범위 (LEN (SL) -1)

  범위 J (I + 1, 렌 (SL))의 경우 :

  경우에 SL [I]> SL [J] :

  SL [i]는, SL [J]를 SL = [J] SL [i]를

  반환 SL

  거품 정렬의 다음 예시적인 최적화 된 버전

  데프 bubble_sort (항목) :

  "" "

  버블 정렬은, 또는 while 루프는 for 루프에 더 익숙하다 달라

  바람직하게는, O (N)

  최악 O (N ^ 2)

  "" "

  items_len = LEN (항목)

  I에 대한 범위 (1 items_len)

  has_swap = 거짓

  범위 J (1, items_len)

  항목 [J - 1]의 경우> 항목 ​​[J] :

  has_swap = TRUE

  항목 [J - 1] 항목 [J] = 항목 [J] 항목 [J - 1]

  하지 has_swap 경우 :

  단절

  항목을 반환

  삽입 정렬

  두 번째 숫자는 좋은 위해 트럼프의 동일한 서열로 삽입하는 위치를 찾는 시작 전방으로부터 순서에 대응한다.

  데프 insert_sort_for (항목) :

  "" "

  삽입 정렬, 루프, 중간 또는 쉽게 루프가 이해하기 동안 :

  가 삽입 된 위치까지 큰 삽입 노르웨이의 수의 값보다 이동 할 필요가 없습니다.

  : PARAM 항목 :  무석 (无锡) 부인과 검사 얼마나 많은 돈을 http://www.csyhjlyy.com/

  :반환:

  "" "

  I에 대한 범위 (1, LEN (항목)) :

  이 항목 item_insert = [I]

  J = I - 1

  반면 J> = 0 :

  item_insert 경우 <항목 [J] :

  항목 [J + 1] 항목 [J] # 삽입하는 요소의 값보다 큰 경우, 후방 움직임 =

  J - 1 =

  다른 사람 : # 루프 밖으로 이동 할 필요가 없습니다

  단절

  항목 [J + 1] = # item_insert 삽입 위치 발견

  항목을 반환

  선택 정렬

  위치가 가장 작은 항목입니다 결정하는 각 항목을 나열, 가장 작은 항목의 위치를 ​​찾을 수, 전체 목록을 검색 할 수 있습니다.

  데프 select_sort (항목) :

  "" "

  분류 선택 전체 목록을 검색, 작은 항목의 위치를 ​​찾을 수

  "" "

  전 범위 (LEN (항목) -1)의 경우 :

  I = min_index

  범위에 대해 J (I + 1 (항목) 렌)

  만약 아이템 [J] <항목 [min_index]

  J = min_index

  min_index 경우 = 내가! :

  항목 [min_index] 항목 [I] = 항목 [I] 항목 [min_index]

  항목을 반환


추천

출처blog.51cto.com/14335413/2429073