"거품 정렬"의 두 판 사이의 차이

8번째 줄: 8번째 줄:
*보통 이중 for 루프로 구현
*보통 이중 for 루프로 구현
*[[교환 정렬]]의 하나
*[[교환 정렬]]의 하나
==예시==
<source lang='php'>
function bubble_sort(&$arr) {
$size = count($arr);
for($i=0; $i<$size; $i++) {
for($j=0; $j<$size-$i-1; $j++) {
if($arr[$j+1] < $arr[$j])
$arr[$j] ^= $arr[$j+1] ^= $arr[$j] ^= $arr[$j+1]; // swap
}
}
}
$arr = range(1,10);
shuffle($arr);
print_r($arr);
bubble_sort($arr);
print_r($arr);
</source>
:→ <code>if($arr[$j+1] < $arr[$j])</code>에서 부등호 방향을 반대로 하면 내림차순이 된다.
:→ 예제: http://zetawiki.com/ex/php/bubble_sort.php


==같이 보기==
==같이 보기==

2018년 7월 15일 (일) 08:26 판

1 개요

bubble sort, sinking sort
거품 정렬, 버블 정렬, 버블 소트
  • 두 인접한 원소를 검사하여 정렬하는 방법
  • 제일 큰 값을 맨 뒤로 보내는 일[1]을 반복
  • 시간 복잡도: [math]\displaystyle{ O(n^2) }[/math]
  • 상당히 느리지만 코드가 단순하고 직관적임
  • 보통 이중 for 루프로 구현
  • 교환 정렬의 하나

2 같이 보기

3 참고

  1. 또는 제일 작은 값을 맨 앞으로 보내는 일
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}