算法——快速排序

原创 2016年06月01日 00:17:46
<?php
function quicksort($arr) {
	if (count($arr) <= 1) return $arr;
	$key   = $arr['0'];
	$left  = array();
	$right = array();
	$count = count($arr);

	for ($i=1;$i<$count;$i++) {

		if ($arr[$i] <= $key) {
			$left[] = $arr[$i];
		} else {
			$right[] = $arr[$i];
		}
	}

	$left  = quicksort($left);
	$right = quicksort($right);

	return array_merge($left,array($key),$right); 
}


结合图形更容易理解整个过程:

http://blog.jobbole.com/11745/

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数据结构——快速排序算法

今天来说一说快速排序:基本思想: 任取一个元素 (如第一个) 为轴点 所有比它小的元素一律前放,比它大的元素一律后放,形成左右两个子表 对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一...

经典算法之——快速排序

快速排序 原理:就是利用嵌套的原理实现排序,将混乱的序列以选择的关键字为基准进行划分,使排列后的数据一边都比他小,另一边都比他大,类似于二叉树的三种遍序方式(先序,中序,后序)此处后面再说 好了源码上...

《算法导论》学习总结——第二部分3快速排序

曾经在程序员杂志上看到快速排序的作者,Hoare,曾经的图灵奖获得者啊,牛光闪闪的。不过当时,对快速排序什么的,印象不算深刻,毕竟没好好学。记得当时杂志上说到的是,快速排序,应该是目前最快的内部排序算...

算法导论笔记——快速排序

快速排序: 快速排序是最常用的算法之一,空间复杂度为O(logn),时间复杂度为O(nlogn),最坏情况下为O(n2) 快速排序使用分治策略,特点是每次找一个主元,根据主元与数组元素的大小,将数组...

《数据结构与算法分析(c描述》—— 快速排序

1. 快速排序快速排序是最快的已知排序算法,平均运行时间为 O(NlogN) ,最坏情况的性能为 O(N^2)。将数组 S 快速排序由下列简单的四步组成: 如果 S 中元素个素是0或1,则返回 取 S...

数据结构与算法——快速排序

每次看大牛的博客都有一种感想:啥时候我也能成为大牛。。。。。插入一个:上两篇文章分别介绍了选择排序和冒泡排序,其思想都差不多,只是选择排序是比较完所有数据后确定最小的数再交换,而冒泡排序是比较相邻的两...

算法分析之——quick-sort快速排序

快速排序是一种排序算法,最坏情况运行时间为θ(n²),但其最佳期望运行时间为θ(nlgn),并且θ(nlgn)记号中隐含的常数因子很小,快排是在就地排序的一种排序算法。快排是基于分治思想的,与归并排序...

数据结构与算法——快速排序

快速排序的平均时间复杂度为O(NlogN),最坏的情况是O(N^2)

算法——快速排序

踏踏实实学算法,从今天开始,从现在开始。 快速排序的思想:每次递归选择一个桩,取其值(int pivot = array[pivotIndex]),从数组末尾向前寻找第一个小于该值pivot的元素...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)