# 6种经典排序算法的舞蹈版演示,排序不再难理解了

php版

```BUBBLESORT(A)
for i <- 1 to length[A]
do for j <- length[A] downto i + 1
do if A[j]<A[j - 1]
then exchange A[j] <-> A[j-1]```

```<?php
/*
* point one: remember swap variable
* point two: remember inside loop size
*/
\$arr = array(2,1,4,2,7);		//init a array variable
\$result = bubbling_ort(\$arr);		//invoke a function and get result

echo '<pre>';				//output format
print_r(\$result);			//output result
echo '</pre>';

function bubbling_sort(\$arr){		//function start
\$size = count(\$arr)-1;	//need to loop size is total length - 1
for (\$i = 0; \$i < \$size; \$i++) {		//outside loop
for (\$j = 0; \$j < \$size-\$i; \$j++) { //inside loop
if (\$arr[\$j] < \$arr[\$j+1]) {	//compare big or small
\$temp      = \$arr[\$j];		//start swap
\$arr[\$j]   = \$arr[\$j+1];
\$arr[\$j+1] = \$temp;
}
}
}
return \$arr;
}
?>
```

```<?php
/*
* point one: remember swap variable
* point two: remember inside loop size
*/
\$arr = array(2,1,4,2,7);		//init a array variable
\$result = bubbling_sort(\$arr);		//invoke a function and get result

echo '<pre>';				//output format
print_r(\$result);			//output result
echo '</pre>';

function bubbling_sort(\$arr){		//function start
\$size = count(\$arr)-1;	//need to loop size is total length - 1
for (\$i = 0; \$i < \$size; \$i++) {		//outside loop
for (\$j = 0; \$j < \$size-\$i; \$j++) { //inside loop
if (\$arr[\$j] < \$arr[\$j+1]) {	//compare big or small
//swap two number without temp variable
\$arr[\$j] = \$arr[\$j+1] + \$arr[\$j];
\$arr[\$j+1] = \$arr[\$j] - \$arr[\$j+1];
\$arr[\$j]   = \$arr[\$j] - \$arr[\$j+1];
}
}
}
return \$arr;
}
?>
```

```<?php
function quickSort(\$arr)
{
\$len = count(\$arr);
if(\$len <= 1) {
return \$arr;
}

\$key = \$arr[0];
\$left_arr = array();
\$right_arr = array();
for(\$i=1; \$i<\$len; \$i++)
{
if(\$arr[\$i] <= \$key)
{
\$left_arr[] = \$arr[\$i];
}
else
{
\$right_arr[] = \$arr[\$i];
}
}
\$left_arr = quickSort(\$left_arr);
\$right_arr = quickSort(\$right_arr);
return array_merge(\$left_arr, array(\$key), \$right_arr);
}

\$arr = array(49,38,65,97,76,13,27);
echo '<pre>';
print_r(quickSort(\$arr));
echo '</pre>';
?>```

```<?php
function quick_sort(\$arr)
{
_quick_sort(\$arr,0,(count(\$arr)-1));
return \$arr;
}
function _quick_sort(&\$arr,\$i,\$j)
{
\$pivot = \$arr[\$i];
\$_i = \$i;
\$_j = \$j;
while(\$i<\$j)
{
while(\$arr[\$j]>=\$pivot && \$i<\$j) \$j--;
if(\$i<\$j)
{
\$arr[\$i] = \$arr[\$j];
\$i++;
}
while(\$arr[\$i]<=\$pivot && \$i<\$j) \$i++;
if(\$i<\$j)
{
\$arr[\$j] = \$arr[\$i];
\$j--;
}
}
\$arr[\$i]=\$pivot;
if(\$_i<\$i-1)
{
_quick_sort(\$arr,\$_i,\$i-1);
}
if(\$_j>\$i+1)
{
_quick_sort(\$arr,\$i+1,\$_j);
}
}

\$just = array(49,38,97,76,13,27);
print_r( quick_sort(\$just) );
```

```<?php

function selection_sort(\$array){
\$count = count(\$array);
for (\$i=0;\$i<\$count-1;\$i++){
/* find the minest */
\$min = \$i;
for (\$j=\$i+1;\$j<\$count;\$j++){
//由小到大排列
if (\$array[\$min]>\$array[\$j]) { //表明当前最小的还比当前的元素大
\$min = \$j;//赋值新的最小的
}
}

/* swap \$array[\$i] and \$array[\$min] 即将当前内循环的最小元素放在\$i位置上*/
\$temp = \$array[\$min];
\$array[\$min] = \$array[\$i];
\$array[\$i] = \$temp;
}
return \$array;
}
\$old_array = array(3,4,1,6,5,2);
\$new_array = selection_sort(\$old_array);

echo '<pre>';
print_r(\$new_array);
echo '</pre>';
?>```

6种经典排序算法的舞蹈版演示,排序不再难理解了

• 0

开心

• 0

板砖

• 0

感动

• 0

有用

• 0

疑问

• 0

难过

• 0

无聊

• 0

震惊

1、冒泡排序 Bubble Sort 最简单的排序方法是冒泡排序方法。这种方法的基本思想是，将待排序的元素

1、冒泡排序 Bubble Sort 最简单的排序方法是冒泡排序方法。这种方法的基本思想是，将待排序的元素
1、冒泡排序 Bubble Sort 最简单的排序方法是冒泡排序方法。这种方法的基本思想是，将待排序的元素
1、冒泡排序 Bubble Sort 最简单的排序方法是冒泡排序方法。这种方法的基本思想是，将待排序的元素
1、冒泡排序 Bubble Sort 最简单的排序方法是冒泡排序方法。这种方法的基本思想是，将待排序的元素