실제 PHP 개발에서는 많은 정렬을 접하게 되는데, 버블 정렬도 일반적인 정렬 중 하나입니다. PHP 개발을 잘하려면 PHP를 사용하여 버블 정렬을 쉽게 구현해야 합니다. 이번 글은 여기 PHP 버블정렬에 대해 알려드리겠습니다! PHP에서 버블 정렬을 구현하는 다양한 방법을 살펴보겠습니다!
버블 정렬은 이해하고 구현하기가 매우 쉽습니다. 예를 들어 작은 것부터 큰 것까지 정렬합니다.
배열길이가 N이라고 가정합니다. 1. 인접한 두 데이터를 비교하여 전자의 데이터가 후자의 데이터보다 크면 두 데이터를 교환합니다.
2. 이러한 방식으로 0번째 데이터를 배열의 N-1번째 데이터로 이동한 후 가장 큰 데이터가 배열의 N-1번째 위치로 "싱크"됩니다.
3. N=N-1, N이 0이 아니면 이전 두 단계를 반복하고, 그렇지 않으면 정렬이 완료됩니다.
옵션 1:
<?php function bubble1_sort($array) { $count = count($array); if ($count <= 1) { return $array; } for ($i = 0; $i < $count; $i++) { for ($j = 0; $j < $count; $j++) { if ($array[$i] < $array[$j]) { $temp = $array[$i]; $array[$i] = $array[$j]; $array[$j] = $temp; } } } return $array; }
옵션 2:
<?php function bubble2_sort($array) { $count = count($array); if ($count <= 1) { return $array; } for ($i = 0; $i < $count; $i++) { for ($j = 1; $j < $count - $i; $j++) { if ($array[$j - 1] > $array[$j]) { $temp = $array[$j - 1]; $array[$j - 1] = $array[$j]; $array[$j] = $temp; } } } return $array; }
옵션 3:
이번에 교환이 발생하면 true인 플래그를 설정하고, 그렇지 않으면 false입니다. 당연히 한 번의 여행에서 교환이 없다면 분류가 완료된 것입니다.<?php function bubble3_sort($array) { $count = count($array); if ($count <= 1) { return $array; } $flag = true; $j = $count; while ($flag) { $flag = false; for ($i = 1; $i < $j; $i++) { if ($array[$i - 1] > $array[$i]) { $temp = $array[$i - 1]; $array[$i - 1] = $array[$i]; $array[$i] = $temp; $flag = true; } } $j--; } return $array; }
옵션 4:
100개의 숫자 배열이 있는 경우 처음 10개만 순서가 지정되지 않고 다음 90개는 모두 정렬되어 모두 처음 10개 숫자보다 큽니다. 그런 다음 첫 번째 순회 후 마지막으로 교환이 일어나는 위치는 10보다 작아야 하며, 이 위치 이후의 데이터가 순서대로 있어야 합니다. 이 위치를 기록하고, 어레이의 선두에서 이 위치까지 두 번째로 횡단하면 됩니다.<?php function bubble4_sort($array) { $count = count($array); if ($count <= 1) { return $array; } $flag = $count; while ($flag > 0) { $k = $flag; $flag = 0; for ($j = 1; $j < $k; $j++) { if ($array[$j - 1] > $array[$j]) { $temp = $array[$j - 1]; $array[$j - 1] = $array[$j]; $array[$j] = $temp; $flag = $j; } } } return $array; }
옵션 5:
<?php function bubble_sort($array) { $count = count($array); if ($count <= 1) { return $array; } for ($i = $count - 1; $i > 0; $i--) { $flag = false; for ($j = 0; $j < $count; $j++) { if ($array[$j] > $array[$j + 1]) { $temp = $array[$j]; $array[$j] = $array[$j + 1]; $array[$j + 1] = $temp; $flag = true; } } if (!$flag) break; } return $array; }
추천 관련 기사:
선택 정렬, 삽입 정렬 및 빠른 정렬을 구현합니다...
위 내용은 PHP는 버블 정렬을 위한 여러 솔루션을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!