美文网首页
快速排序算法的PHP与JQuery简单实现

快速排序算法的PHP与JQuery简单实现

作者: Separes | 来源:发表于2017-02-13 14:08 被阅读43次

快速排序(以下简称快排)算法的PHP与JQuery简单实现

1.简介:

  • 1.快排的本质是冒泡排序(Bubble Sort)的优化;
  • 2.快排的排序效率在同为O(N*logN)的几种排序方法中效率较高;
  • 3.为了便于说明,这里将以数组为例,实际应用可灵活拓展;

2.核心思想:

  • 1.选择一个基本元素作为参照值,通常选择为第一位或中间一位;
  • 2.以基本元素为参照,将数组分割为两个区间:一个区间A全部大于该值,一个区间B全部小于该值;
  • 3.再分别对AB区间重复上述1,2操作,直到再无可被拆分的元素;
  • 4.整合区间碎片,即得目标对象;

PHP Demo:

public function fsort($a_array) {
// 初始化分隔区间
$a_left = array();
$a_right = array();
// 设置终止条件
if (isset($a_array[0])) {
    $o_flag = $a_array[0];
}
if (!isset($a_array[1])) {
    return $a_array;
}
// 分割目标对象
for ($i = 0; $i < count($a_array); $i++) { 
    if ($a_array[$i] < $o_flag) {
        $a_left[] = $a_array[$i];
    }
    if ($a_array[$i] > $o_flag) {
        $a_right[] = $a_array[$i];
    }
}
// 递归处理分割后的两个区间
$a_left = $this->fsort($a_left);
$a_left[] = $o_flag;
$a_right = $this->fsort($a_right);
return array_merge($a_left, $a_right);
}

JQuery Demo:

var qSort = function(array){
// 初始化分隔区间
var left = [],
    right = [];
// 设置终止条件
if (array[0]) {
    var flag = array[0];
}
if (!array[1]) {
    return array;
}
// 分割目标对象
for (i = 0; i < array.length; i++) { 
    if (array[i] < flag) {
        left.push(array[i]);
    }
    if (array[i] > flag) {
        right.push(array[i]);
    }
}
// 递归处理分割后的两个区间
left = qSort(left);
left.push(flag);
right = qSort(right);
return $.merge(left, right);
}

相关文章

  • 快速排序算法的PHP与JQuery简单实现

    快速排序(以下简称快排)算法的PHP与JQuery简单实现 1.简介: 1.快排的本质是冒泡排序(Bubble S...

  • 七大排序算法之快速排序

    七大排序算法之快速排序 @(算法笔记)[排序算法, 快速排序, C++实现] [TOC] 快速排序的介绍: 快速排...

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • 常用四种排序算法的思想与实现

    无整理 不简书 常用的排序算法有冒泡排序、选择排序、插入排序、快速排序,下面简单介绍四种排序方法的思路与实现代码。...

  • 常见排序算法

    希尔排序,快速排序,堆排序,2路归并算法的c++简单实现 在 里面写了一个随机数列生成,可以快速验证算法的正确性 ...

  • JavaScript实现经典排序算法

    使用JavaScript实现的经典排序算法 util 冒泡 简单选择 直接插入 快速排序 堆排序 归并排序

  • 五种常见排序算法实现(Java)

    Java-五种排序算法实现 前言及准备 这篇我们会介绍比较简单的五种排序算法:插入排序、冒泡排序、快速排序、选择排...

  • php实现快速排序算法

    理解 每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的...

  • PHP - 快速排序

    使用PHP代码实现快速排序算法 快速排序是十分常用的高效率的算法,其思想是:先选一个标尺,用它把整个队列过一遍筛选...

  • 常用的排序算法

    常用的排序算法(PHP实现)_慕课手记

网友评论

      本文标题:快速排序算法的PHP与JQuery简单实现

      本文链接:https://www.haomeiwen.com/subject/fbazittx.html