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

 
(사용자 2명의 중간 판 9개는 보이지 않습니다)
8번째 줄: 8번째 줄:
*보통 이중 for 루프로 구현
*보통 이중 for 루프로 구현
*[[교환 정렬]]의 하나
*[[교환 정렬]]의 하나
==예시==
<source lang='php'>
<?php
function xmp_print($arr) { echo '<xmp>'; print_r($arr); echo '</xmp>'; }
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);
xmp_print($arr);
bubble_sort($arr);
xmp_print($arr);
</source>
:→ <code>if($arr[$j+1] < $arr[$j])</code>에서 부등호 방향을 반대로 하면 내림차순이 된다.
:→ 예제: http://jmnote.com/php/bubble_sort.php


==같이 보기==
==같이 보기==
*[[삽입 정렬]]
* [[거품정렬 구현]]
*[[병합 정렬]]
* [[삽입 정렬]]
*[[정렬]]
* [[병합 정렬]]
*[[swap]]
* [[정렬]]
 
* [[swap]]
==주석==
* [[함수 sort()]]
<references/>


==참고 자료==
==참고==
*https://en.wikipedia.org/wiki/Bubble_sort
* {{영어위키백과|Bubble sort}}


[[분류: 정렬]]
[[분류:거품정렬]]

2018년 8월 26일 (일) 02:22 기준 최신판

1 개요[ | ]

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

2 같이 보기[ | ]

3 참고[ | ]

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