PHP 冒泡排序【数组】


function bubble_sort($array){
    $count = count($array);
    if ($count <= 0) return false;
    for($i=0; $i<$count; $i++){
        for($j=$i; $j<$count-1; $j++){
            if ($array[$i] > $array[$j]){
                $tmp = $array[$i];
                $array[$i] = $array[$j];
                $array[$j] = $tmp;
            }
        }
    }
    return $array;
}

  

原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换

这样一趟过去后,最大或最小的数字被交换到了最后一位

然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似

时间: 2024-08-10 21:29:43

PHP 冒泡排序【数组】的相关文章

数据结构 C++冒泡排序 数组当参数传递

冒泡排序#include <iostream>using namespace std;void bubblesort1A(int A[],int n);int main() { int A[10]={0},n=0,i=0; cin>>n; for( i=0;i<n;i++) cin>>A[i]; bubblesort1A( A , n); for(int i=0;i<n;i++) cout<<A[i]<<endl; return 0;

3.13&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;冒泡排序

抽奖活动: 输入n个手机号码,滚动号码,5秒钟后停止 输出中奖人号码 Console.Write("请输入手机号码个数:"); int a = int.Parse(Console.ReadLine()); string [] shuzu = new string [a]; for (int i = 0; i < a; i++) { Console.Write("请输入第"+(i+1)+"个手机号码:"); shuzu[i] = Consol

几个数组的排序方法

1.对数组进行某一键值的排序 function array_sort($arr,$keys,$type = 'asc'){ if (empty($arr)) return $arr; $keysvale = $newq_array = array(); foreach($arr as $k=>$v){ $keysvale[$k] = $v[$keys]; } if ($type == 'asc'){ asort($keysvale); }else{ arsort($keysvale); } re

各种排序算法的复杂度和稳定性

名称 数据对象 稳定性 时间复杂度 ?? 空间复杂度 描述 ?? ?? ?? 平均 最坏 ?? ?? 冒泡排序 数组 ?? (无序区,有序区).从无序区通过交换找出最大元素放到有序区前端. 选择排序 数组 ?? (有序区,无序区).在无序区里找一个最小的元素跟在有序区的后面.对数组:比较得多,换得少. ?? 链表 ?? ?? ?? ?? 插入排序 数组.链表 ?? (有序区,无序区).把无序区的第一个元素插入到有序区的合适的位置.对数组:比较得少,换得多. 堆排序 数组 ?? (最大堆,有序区)

015.C#基础总结

一.语言基础1.VS .net C# Console类:WriteLine() Write()ReadLine()2.变量.数据类型.运算符数据类型 变量名; 变量名 = 值; int float double char bool stringbyte sbyte ++ --?: const:常量 3.流程控制语句选择语句if..else switch...case 循环语句初始化 循环条件 循环操作 更新 forwhiledo..while do{}while(条件); 跳转语句breakco

C#基础知识回顾整理

20150907~20150928所学基础知识整理,后续完善补充 数据类型 变量 运算符 语句:条件语句.循环语句.跳转语句.异常语句 时间 类.类型 数组.冒泡排序 数组.迷宫操作 集合 结构体 枚举.函数 递归 数据类型: 变量:用于临时存储数据的 变量的定义: 数据类型 变量名: 数据类型  变量名=赋值: 数据类型  变量名1,变量名2,变量名3...: //生成随机数的类 Random r = new Random(); int shu = r.Next(100); Console.W

常用类(三)

Integer Character Arrays BigDecimal/BigInteger Calendar数组的排序方式及二分折半查找 一.Integer(方法补充) 1.十进制转换其他进制方法  public static String toBinaryString(int i):二进制  public static String toOctalString(int i):八进制  public static String toHexString(int i):十六进制  public s

排序算法复杂度

转自:http://blog.csdn.net/xiexievv/article/details/45795719 在计算机科学所使用的排序算法通常被分类为: 计算的时间复杂度(最差.平均.和最好性能),依据列表(list)的大小(n).一般而言,好的性能是O(n log n),且坏的性能是O(n2).对于一个排序理想的性能是O(n).仅使用一个抽象关键比较运算的排序算法总平均上总是至少需要O(n logn). 存储器使用量(以及其他电脑资源的使用) 稳定性:稳定排序算法会让原本有相等键值的纪录

【性能分析】初探VS2010中的Profile(性能剖析)功能

VS2010中的Profile(性能剖析)功能十分实用,它可以协助程序员迅速锁定当前程序的性能瓶颈,为程序的优化做准备. 点击VS2010的Analyze菜单,选择Launch Performance Wizard,依照提示可以很方便地完成Profile的必需配置.可能你会碰到"Injection of runtime library failed"错误,这时就不要使用Wizard,而要选择Analyze下拉菜单中的Profiler->Attach/Detach...,将Prof

C语言学习总结(三) 复杂类型

第五章.复杂数据类型 (数组.字符串.指针.结构体.枚举.共同体) 1.什么是数组? 概念:把具有相同类型的若干变量按有序的形式组织起来,这些按序排列的同类数据元素的集合称为数组: 按数组元素的类型不同,数组又可分为: 数值数组:用来存储数值得 字符数组:用来存储字符 ‘a’ 指针数组:用来存放指针(地址)的 结构数组:用来存放一个结构体类型的数据 按维度分类: 一维数组 二维数组 多维数组 1.一维数组 概念:所有的元素都不是数组 使用流程:定义数组---->给数组初始化---->使用数组