基于php冒泡排序算法的深入理解

交换排序的基本思想:两两比较待排序的数据,如果发生逆序,则交换之,直到全部数据都排好序为止。
•冒泡排序的基本思想:
1.从后往前,扫描所有的数据,如果相邻的两个数发生逆序,则互换。--第1趟冒泡
2.从后往前,扫描最后一个到第2个数据,如果相邻的两个数发生逆序,则互换。--第2趟冒泡
3.如此依次进行,直到进行n-1趟冒泡,或者在某趟冒泡中,没有逆序的情况即可提前结束。


代码如下:

<script>
var arr = [15,8,7,9,10,0];

var _len = arr.length;

alert("排序之前:"+arr);

var exchange=0;
var temp = 0;
for(var i=0; i<arr.length;i++)
{
  exchange=0;
  for(var j=arr.length;j>=i;j--)
  {
     if(arr[j] < arr[i])
     {
       temp = arr[j];
       arr[j] = arr[i];
       arr[i] = temp;
       exchange = 1;     
     }
  }
  if(exchange == 0)
  {
     break;
  }
}

alert("排序之后:"+ arr);

</script>

(0)

相关推荐

  • 排序算法之PHP版快速排序、冒泡排序

    一.快速排序 1.简介快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来.快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists).2.步骤从数列中挑出一个元素,称为 "基准&quo

  • PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解

    数据结构很重要,算法+数据结构+文档=程序使用PHP描述冒泡排序算法,对象可以是一个数组 复制代码 代码如下: //冒泡排序(数组排序)function bubble_sort($array) {$count = count($array);if ($count <= 0)return false;for($i=0; $i<$count; $i++){for($j=$count-1; $j>$i; $j–){if ($array[$j] < $array[$j-1]){$tmp =

  • 又一个PHP实现的冒泡排序算法分享

    经典的冒泡排序法一直是许多程序沿用的其中一种排序法,话说冒泡排序法在效率上比PHP系统函数sort更高效.本章不讨论性能,所以就不拿它来跟系统性能做对比了. 冒泡排序大概的意思是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数.由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序.但其实在实际过程中也可以根据自己需要反过来用,大树往前放,小数往后放. <?php /** * PHP中的冒泡排序法使用 */ // 预先声明一个数组 $arr = array (1

  • PHP排序算法的复习和总结

    直接上代码吧! 复制代码 代码如下: <?php /* * 插入排序(一维数组) * 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当的位置,使数列依然有序:直到待排序的数据元素全部插入完成为止. */ function insertSort($arr){ if(!is_array($arr) || count($arr)==0){ return $arr; } $count = count($arr); for($i=1; $i<$count; $i++){ if(isset(

  • PHP版本常用的排序算法汇总

    //1.冒泡排序 function bubble_sort($arr){ $n = count($arr); for($i=0;$i<$n-1;$i++){ for($j=$i+1;;$j<$n-$i;$j++){ if($arr[$j]<$arr[$i]){ $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; } } } } //2.归并排序 //merge函数将指定的两个有序数组(arr1arr2,)合并并且排序 //我们

  • php排序算法(冒泡排序,快速排序)

    冒泡排序实现原理 ① 首先将所有待排序的数字放入工作列表中.② 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换. ③ 重复步骤②,直至再也不能交换. 代码实现 复制代码 代码如下: <?php function bubbingSort(array $array) {     for($i=0, $len=count($array)-1; $i<$len; ++$i)     {         for($j=$len; $j>$i;

  • PHP四种基本排序算法示例

    许多人都说算法是程序的核心,算法的好坏决定了程序的质量.作为一个初级phper,虽然很少接触到算法方面的东西.但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具.这里介绍冒泡排序,插入排序,选择排序,快速排序四种基本算法,分析一下算法的思路. 前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序. $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序

  • PHP 冒泡排序算法的实现代码

    基本概念 冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面.即首先比较第1 个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数.如此下去,直至最终完成排序. 由

  • PHP 快速排序算法详解

    概念 这里借用百度百科的一张图来,非常形象: 快速排序算法是对冒泡算法的一个优化.他的思想是先对数组进行分割, 把大的元素数值放到一个临时数组里,把小的元素数值放到另一个临时数组里(这个分割的点可以是数组中的任意一个元素值,一般用第一个元素,即$array[0]),然后继续把这两个临时数组重复上面拆分,最后把小的数组元素和大的数组元素合并起来.这里用到了递归的思想. PHP实现 复制代码 代码如下: /*     快速排序 */ function quickSort($array) {    

  • PHP简单选择排序算法实例

    简单的选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换 复制代码 代码如下: <?php     class Sort{         /**          * 简单的选择排序          *          * @param unknown_type $arr          */         public function selectSort(&$arr) {            

  • php排序算法实例分析

    本文实例分析了php排序算法.分享给大家供大家参考,具体如下: 用PHP写排序,虽然PHP自动了很多排序方式,SQL语句也可以很快速的从数据库里有序的读出数据.但是不同的需求还有灵活 运用所学的PHP基础知识. 我想完成如下的效果 排序算法效果图 就是把一个数值中所以的数据按时间排序并且分行显示 <?php $array = $mysql->query_array($mysql->sql_select("user","userid,truename,year

  • PHP 各种排序算法实现代码

    复制代码 代码如下: <?php // 功能: PHP实现各种排序算法 // Author: windlike // Datetime: 2007-06-09 // 冒泡排序 function BubbleSort($arr){ $num = count($arr); for($i=1;$i<$num;$i++){ for($j=$num-1;$j>=$i;$j--){ if($arr[$j]<$arr[$j-1]){ $iTemp = $arr[$j-1]; $arr[$j-1]

  • php实现的常见排序算法汇总

    本文汇总了常见的php排序算法,在进行算法设计的时候有不错的借鉴价值.现分享给大家供参考之用.具体如下: 一.插入排序 用文字简单的描述,比如说$arr = array(4,2,4,6,3,6,1,7,9); 这样的一组数字进行顺序排序: 那么,首先,拿数组的第二个元素和第一元素比较,假如第一个元素大于第二元素,那么就让两者位置互换,接下来,拿数组的第三个元素,分别和第二个,第一个元素比较,假如第三个元素小,那么就互换.依次类推.这就是插入排序,它的时间频度是:1+2+...+(n-1)=(n^

随机推荐