******삽입 정렬(1차원 배열)
1, 첫 번째 요소부터 정렬이 완료된 것으로 간주 가능
2, 다음 요소를 꺼내고 정렬된 요소 순서에서 뒤에서 앞으로 스캔
3, (정렬된) 요소가 새 요소보다 크면 해당 요소를 다음 위치
4, 정렬된 요소가 새 요소보다 작거나 같은 위치를 찾을 때까지 3단계를 반복합니다.
5, 해당 위치에 새 요소를 삽입합니다
6, 2단계 반복
*/
function insert_sort($arr)
{
$len = count($arr);
for ($i=1; $i<$len; $i++)
{
$tmp = $arr[$i];
$j = $i -1;
while ($arr[$j] > $tmp && $j>=0)
$arr[$j];
🎜>/*
******버블 정렬(1차원 array)
1, 인접한 요소를 비교합니다. 첫 번째 것이 두 번째 것보다 크면 둘 다 교환하세요.
2. 처음의 첫 번째 쌍부터 끝의 마지막 쌍까지 인접한 요소의 각 쌍에 대해 동일한 작업을 수행합니다. 이때 마지막 요소가 가장 큰 숫자가 되어야 합니다.
3. 마지막 요소를 제외한 모든 요소에 대해 위 단계를 반복합니다.
4. 비교할 숫자 쌍이 없을 때까지 점점 더 적은 수의 요소에 대해 위 단계를 계속 반복합니다.
*/
function bubble_sort($arr)
{
$len = count($arr);
for ( $i=0; $i<$len; $i++)
{
for ($j=$len-1; $j>$i; $j--) >
{
if ($arr[$j-1] > $arr[$j])
{
$tmp = $arr[$ j-1];
$arr[$j-1] = $arr[$j];
}
}
$arr 반환 ;
}
/*
***** *선택 정렬(1차원 배열)
1, 먼저 다음에서 가장 작은 요소를 찾습니다. 정렬되지 않은 시퀀스를 정렬된 시퀀스의 시작 위치인
2에 저장한 다음 Continue에서 정렬되지 않은 나머지 요소를 선택하여 가장 작은 요소를 찾아 정렬된 시퀀스의 마지막에 넣습니다.
3 등 모든 요소가 정렬될 때까지 계속됩니다.
*/
function select_sort($arr){
$count = count($arr);
for($i=0; $ i<$count-1; $i++)
{
$k = $i;
for($j=$i+1; $j<$count ; $ j ++)
{
IF ($ arr [$ k] & gt; $ arr [$ j]
{
$ k = $j;
}
}
if ($k != $i)
$t mp = $arr [$i] ;
$arr[$i] = $arr[$k]; >
}
$arr 반환 ;
}
/ *
******퀵 정렬(1차원 배열)
1, 먼저 중간 값을 무작위로 선택
2, 중간보다 작은 값을 입력 왼쪽 값, 오른쪽 중간 값보다 큰 값
3, 그런 다음 왼쪽 데이터와 오른쪽 데이터 각각에 대해 1단계와 2단계를 재귀적으로 호출하여 왼쪽 값, 중간 값, 오른쪽 값을 병합합니다. 데이터.
*/
quick_sort($arr) 함수
{
if (count($arr) <= 1)
{
return $arr;
}
$key = $arr[0];
$left_arr = array();
$right_arr = array();
for ($i=1; $i
{
if ($arr[$i] <= $key) $left_arr[] = $arr[$i] ;
else $right_arr[] = $arr[$i];
}
$left_arr =quick_sort($left_arr);
$right_arr =quick_sort($right_arr);
return array_merge($left_arr, $key, $right_arr);
}
$a = array(123,321,432,341345,45234, 53,493);
echo "
";<br><br>print_r(select_sort($a));<br><br>print_r(bubble_sort($a));<br> <br>print_r(insert_sort($a));<br><br>print_r(quick_sort($a));<br><br>echo "";