버블 정렬
프로그래밍과 알고리즘을 처음 접하는 친구들에게는 정렬 알고리즘이 명확하지 않을 수 있습니다. 다음으로 버블 정렬을 함께 분석해 보겠습니다.
버블정렬의 원리는 무엇인가요?
인접한 두 셀의 값을 비교하는 동안 배열을 탐색합니다. 전자가 후자보다 크면 두 값이 교환됩니다. 이 과정이 끝나면 배열의 최대값이 마지막 위치에 배치되어야 합니다.
위 과정을 다시 수행하면 남은 데이터 중 최대값이 마지막에서 두 번째 위치에 위치하는 것을 확인할 수 있습니다.
그런 다음 위의 과정을 다시 계속하면 나머지 데이터의 최대값이 마지막에서 세 번째 위치에 배치되는 것을 계속해서 확인할 수 있습니다.
그리고 등등. . . . .
그림:
원래 배열 |
18 | 22 | 12 |
15 | 23 | 9 |
첫 여행 | 18 |
22 | 12 | 15 | 9 | 23 |
두 번째 여행 | 18 | 22 | 12 | 9 | 15 | 23 |
세 번째 여행 | 18 | 22 | 9 | 12 | 15 | 23 |
네 번째 여행 | 18 | 9 | 12 | 15 | 22 | 23 |
다섯 번째 여행 | 9 | 12 | 15 | 18 | 22 | 23 |
코드 데모:
$arr1 = array(18,22,12,15,23,9); $n = count($arr1); //控制要进行的躺数 for($i = 0;$i < $n-1;$i++){ //在每一趟里面,控制进行比较的次数 for($k = 0;$k < $n-1-$i;$k++){ if ($arr1[$k] > $arr1[$k+1]) { $temp = $arr1[$k]; $arr1[$k] = $arr1[$k+1]; $arr1[$k+1] = $temp; } } }
마지막으로 규칙을 요약해 보겠습니다.
1. 처음부터 끝까지 쌍을 비교하고 위치를 교환합니다. , $n은 총 개수(배열 길이)입니다.
2. 인접한 두 데이터의 크기를 매번 비교하고, 필요한 경우 위치를 교환합니다!
3. 첫 번째 여행의 비교 횟수는 $n-1
입니다.위 내용은 버블 정렬의 상세 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!