算法——快速排序

原创 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/

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

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

  • 2007年07月09日 20:18
  • 90KB
  • 下载

数据结构与算法分析(Java语言描述)(7)—— 快速排序

伪代码for each (unsorted) partition set first element as pivot storeIndex = pivotIndex + 1 for i = ...

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

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

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

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

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

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

经典算法之——快速排序

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

快速排序——一步一步算法篇

快速排序 快速排序是对冒泡排序的一种改进 基本思想:在待排序的数据中找出一个枢轴,这个枢轴可以在两侧,可以在中间。然后通过一趟排序将这组数据分成两部分,使一部分的数据要比枢轴大,另一部分数...

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

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

学习算法(5)——快速排序

1. 前言 快速排序,很经典,无数的地方都提到。 代码,虽然看起来不多,但是理解起来,并不是很容易。 我花了很长时间,才弄明白。 下面的代码,最关键的地方,就是理解 i 和 j 的增长的意义。 ...

中级程序员必须懂的20大基础算法(1)——快速排序

算法的入门级研究一般都是从“排序”和“查找”开始的。“排序算法”和她的姊妹“查找算法”是很多复杂算法的基础,也是很多复杂系统的基础。比如Linux中最复杂的虚拟内存管理就是基于“红-黑树”查找算法的;...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法——快速排序
举报原因:
原因补充:

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