1.冒泡排序算法改进:

方法一:

 function bubbleSort($arr){//$arr(1...n)是待排序的文件,采用自下向上扫描,对$arr做冒泡排序
$bFlag = true; //交换标志
for($i=; $i<count($arr); $i++){ //最多做n-1趟排序
$bFlag = false; //本趟排序开始前,交换标志应为假
for($j = count($arr)-; $j >= $i; $j--){ //对当前无序区$arr[i..n]自下向上扫描
if( $arr[$j+] < $arr[$j] ){//交换记录
$temp = $arr[$j+]; //$temp不是哨兵,仅做暂存单元
$arr[$j+] = $arr[$j];
$arr[$j] = $temp;
$bFlag = true; //发生了交换,故将交换标志置为真
}
}
if(!$bFlag){ //本趟排序未发生交换,提前终止算法
break;
}
} //endfor(外循环)
print_r($arr);
} //BubbleSort

方法二:

 function bubbleSort($arr){
$bSort = false;
for ($i=; $i<count($arr) && !$bSort; $i++) {
$bSort = true;
for ($j = ; $j<count($arr) - $i - ; $j++) {
if ($arr[$j] > $arr[$j+]) {
$bSort = false;
// 不使用第三个变量
$arr[$j] = $arr[$j] + $arr[$j+];
$arr[$j+] = $arr[$j] - $arr[$j+];
$arr[$j] = $arr[$j] - $arr[$j+];
}
}
}
}

2.快速排序算法:

 function quick_sort($array) {
if (count( $array ) <= ) return $array;
$key = $array [];
$left_arr = array ();
$right_arr = array (); for($i = ; $i < count( $array ); $i ++) {
if ($array [$i] <= $key)
$left_arr [] = $array [$i];
else
$right_arr [] = $array [$i];
}
$left_arr = quick_sort ( $left_arr );
$right_arr = quick_sort ( $right_arr );
return array_merge ( $left_arr, array ($key ), $right_arr );
}

快速、冒泡排序算法(PHP版)的更多相关文章

  1. 冒泡排序算法 C#版

    冒泡排序算法的运作如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 3.针对所 ...

  2. 冒泡排序(js版)

    基本思想:两两比较相邻记录的关键字,如果反序则交换,直至没有反序为止. 最初的冒泡排序(初级版): //从小到大 function BubbleSort(arr){ var i,j,temp; for ...

  3. 常用排序算法--java版

    package com.whw.sortPractice; import java.util.Arrays; public class Sort { /** * 遍历一个数组 * @param sor ...

  4. java 基础排序(冒泡、插入、选择、快速)算法回顾

    java 基础排序(冒泡.插入.选择.快速)算法回顾 冒泡排序 private static void bubbleSort(int[] array) { int temp; for (int i = ...

  5. C#冒泡排序算法

    用了两种形式的数据,一个是泛型List,一个是数据int[].记录一下,作为自己学习过程中的笔记. using System; using System.Collections.Generic; us ...

  6. c#-冒泡排序-算法

    冒泡排序(Bubble Sort) 冒泡排序算法的运作如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后 ...

  7. C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面

    个人理解,开发应用程序的目的,不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景也最为复杂,包括但不限于:表格记录查询.报表查询.导出文件查询等等 ...

  8. sdut 1592转置矩阵【稀疏矩阵的压缩存储】【快速转置算法】

    转置矩阵 Time Limit: 1000ms   Memory limit: 32768K  有疑问?点这里^_^ 题目链接:http://acm.sdut.edu.cn/sdutoj/proble ...

  9. java冒泡排序算法

    /** * 冒泡排序算法:每次 * @author shaobn * @description 每次都会确定一个最大的值 即固定了,所以会每次-i; */ public class Test1 { p ...

随机推荐

  1. 2016031901 - U盘安装ubuntu系统

    使用U盘安装ubuntu系统 01.进入u盘安装 个人使用的是闪迪U盘安装 02. 个人重装ubuntu 03.进入ubuntu安装界面 04.进入语言界面 05.准备安装ubuntu 06.ubun ...

  2. Call Azure Queue get "The remote server returned an error: (400) Bad Request."

    这几天开始研究Windows Azure, 在使用Azure Queue 的时候,CreateInfNotExists 总是抛出异常 "The remote server returned ...

  3. 如何用JavaScript在浏览器端获取图片的原始尺寸大小?

    var img = $("#img_id"); // Get my img elem var pic_real_width, pic_real_height; $("&l ...

  4. asp.net(c#)有关 Session 操作的几个误区

    1. this.Session["username"] = null  HttpSessionState 内部使 用 NameObjectCollection 类型的集合对象来存储 ...

  5. lr11 BUG?Failed to send data by channels - post message failed.

    问题描述   : http协议,场景运行一会之后,报错! erro信息: Failed to send data by channels - post message failed. 解决方法 :ht ...

  6. *[codility]Number-of-disc-intersections

    http://codility.com/demo/take-sample-test/beta2010/ 这题以前做的时候是先排序再二分,现在觉得没有必要.首先圆可以看成线段,把线段的进入作为一个事件, ...

  7. 冒泡排序BubbleSort

    /** * * @author Administrator * 功能:交换式排序之冒泡排序 */ package com.test1; import java.util.Calendar; publi ...

  8. WPF中的MatrixTransform

    原文:WPF中的MatrixTransform WPF中的MatrixTransform                                                         ...

  9. Ubuntu zookeeper-3.5.0-alpha启动错误 zkEnv.sh: Syntax error: "(" unexpected (expecting "fi")(转)

    昨天小猿我把Ubuntu Server64位上的 zookeeper换成了最新版本的,结果启动的时候出错:之前zookeeper-3.3.6是没有任何问题的,换成了zookeeper3.5出现了下面的 ...

  10. 你所不知道的string.xml

    String 能被应用程序或者其他资源文件(比如layout XML)引用的单个字符串. 注意:字符串是简单类型资源,是用名称(name)(而非XML文件名)来直接引用的.因此,在一个XML文件里,可 ...