快速排序
2018-03-12 16:26
169 查看
/**
*快速排序
*/
$array = array(4,3,1,2,7,5,6);
function QuickSort($arr)
{
//终结条件
//判断当前数组是否需要排序
if(count($arr)<=1)
{
//不需要排序了 直接返回值就行了
return $arr;
}
//下面进行排序 定义标尺
$num = $arr[0];
//定义两个数组
$left_array = []; //左边数组
$right_array = []; //右边数组
//循环
for($i = 1;$i<count($arr);$i++)
{
if($num>$arr[$i])
{
$left_array[] = $arr[$i]; //比当前数大的放在右边
}
else
{
$right_array[] = $arr[$i]; //比当前数小的放在左边
}
}
// //递归思想
$left_array = QuickSort($left_array);
$right_array = QuickSort($right_array);
// return $right_array;
return array_merge($left_array,array($num),$right_array);
}
//时间复杂度
//O(n²)
//需要排序的数组
$array = array(4,3,1,2,7,5,6);
//调用递归
print_r(QuickSort($array));
*快速排序
*/
$array = array(4,3,1,2,7,5,6);
function QuickSort($arr)
{
//终结条件
//判断当前数组是否需要排序
if(count($arr)<=1)
{
//不需要排序了 直接返回值就行了
return $arr;
}
//下面进行排序 定义标尺
$num = $arr[0];
//定义两个数组
$left_array = []; //左边数组
$right_array = []; //右边数组
//循环
for($i = 1;$i<count($arr);$i++)
{
if($num>$arr[$i])
{
$left_array[] = $arr[$i]; //比当前数大的放在右边
}
else
{
$right_array[] = $arr[$i]; //比当前数小的放在左边
}
}
// //递归思想
$left_array = QuickSort($left_array);
$right_array = QuickSort($right_array);
// return $right_array;
return array_merge($left_array,array($num),$right_array);
}
//时间复杂度
//O(n²)
//需要排序的数组
$array = array(4,3,1,2,7,5,6);
//调用递归
print_r(QuickSort($array));
相关文章推荐
- 快速排序
- php使用递归与迭代实现快速排序示例
- 快速排序之单项扫描法
- 快速排序和快速选择
- php数据结构与算法(PHP描述) 快速排序 quick sort
- qsort 快速排序
- 快速排序
- 快速排序 Vs. 归并排序 Vs. 堆排序——谁才是最强的排序算法
- 快速排序
- 快速排序
- 快速排序里的学问:快速排序的过程
- 排序-快速排序
- 快速排序的简洁写法
- 数据结构:快速排序
- 归并排序、快速排序
- php排序之快速排序
- 快速排序的汇编级优化(windowds平台VS下dubug release模式对比 linux平台gcc的有无优化对比)
- 快速排序5分钟快速学习(小白指南)
- 分治策略----快速排序
- 快速排序