冒泡排序法和二分法排序
<?php
//使用冒泡排序法对数组进行排序的原理:数组元素两两比较大小
function func($arr){
$len=count($arr);
for($i=0;$i<$len-1;$i++){
for($j=0;$j<$len-1-$i;$j++){
if($arr[$j]>$arr[$j+1]){
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
}
}
}
print_r($arr);
}
$arr=array(0,11,2,3,24,5,16,7,48,9);
func($arr);
//使用快速排序法对数组进行排序的原理:数组元素进行树状分支,分结点比较大小,然后采用递归函数递归处理
$arr=array(22,1,33,4,56,7,8,3,33,44,66,0,99);
function fenzhi($arr){
$len=count($arr);
if(!is_array($arr)||empty($arr)){
return array();
}
if($len<=1){
return $arr;
}
$left=array();
$right=array();
$key[]=$arr[0];
for($i=1;$i<$len;$i++){
if($arr[$i]>=$key[0]){
$left[]=$arr[$i];
}
else{
$right[]=$arr[$i];
}
}
$left=fenzhi($left);
$right=fenzhi($right);
return array_merge($left,$key,$right);
}
print_r(fenzhi($arr));
?>
冒泡排序法和二分法排序相关推荐
- 总结c语言基础算法——冒泡排序法和选择排序法
1.首先无论何种排序方法其最终目的是按要求将所给数据进行排序.而在C语言中可以有很多排序的方法,这里着重介绍的是常用的较为基础和重要的算法--冒泡排序法和选择排序法. 下面将举一个例子进行讲解: 要求 ...
- 浅谈排序算法:冒泡排序法和选择排序法的区别
之前学习了冒泡排序法和选择排序法,最近被老师问某个道题用的是什么排序法.自己居然答不出来,才发现自己没有真正弄懂,这两个算法的原理和区别,所以····· 1冒泡排序法 1.1什么是冒泡排序法? 顾名思 ...
- 冒泡排序法和选择排序法比较(从小到大,升序)
1.冒泡排序法 冒泡法的基本思想为将相邻的两个数进行比较,并且将较大的数赋值给后面的数.(可以看做将较大的数沉底.) 举个例子,现在我们有5个数,即3 ,7,2 , 1, 5.现在我们需要用冒泡法将它 ...
- 冒泡排序法和选择排序法
冒泡排序法(算法): ①.比较相邻的元素.如果第一个比第二个大,就交换它们两个: ②.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数: ...
- c语言冒泡排序与二分法排序
1.冒泡排序:将元素进行两两比较,大的向后排. 外层循环:N-1(控制比较的轮数) 内层循环:N-1-i(控制每轮比较的的次数,i代表外层循环变量) 如有四个元素,外层3层.1时要比三次,2时比两次, ...
- 使用策略模式的设计方式来实现对数组的排序,提供两种具体的实施策略,冒泡排序法和选择排序法
package com.Arrays;public interface ArraysSort {public abstract int[] sort(int [] arr); }package com ...
- [PHP]基本排序(冒泡排序、快速排序、选择排序、插入排序、二分法排序)
冒泡排序: function bubbleSort($array){ $len=count($array);//该层循环控制 需要冒泡的轮数for($i=1;$i<$len;$i++){ //该 ...
- 分享一个多线程实现[冒泡][选择][二分法]排序的例子
线程的使用规则我将会在我另一篇文章<Delphi中使用比较少的一些语法>中进行介绍,这里只开放一篇Delphi原代码的算法: //工程文件:Sort_MultiThread.dpr pro ...
- 链表冒泡排序java_055-冒泡排序算法代码实现
2.网上数据结构和算法的课程不少,但存在两个问题: 1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了 2) ...
最新文章
- Rust 语言风靡学术界
- 刘宇凡:数字让切糕与电商溅起涟漪
- 【Flutter】StatefulWidget 组件 ( Image 组件 | TextField 组件 )
- 12、OpenCV Python 图像梯度
- python点线图_Python | 点线图
- C++自学13:位运算(std::bitset)
- 有关SQLite数据库的一些实证数据,有一定历史比较和参考意义
- HTML5 Security Cheatsheet
- 即时通讯工具的基本功能和如何做防御
- 计算机专业保研面试备考:计算机算法(必看)
- 菜鸟和老鸟都无法避免的问题——未将对象引用设置到对象的实例
- 国外15种手机游戏引擎和开发工具介绍
- Knowledge Distillation论文阅读之:综述文章:Knowledge Distillation: A Survey(未完待续····)
- 基于java的超市会员积分管理系统
- java 加密并打包_java实现将多个文件打包成zip压缩文件以及对压缩文件的加密
- 获取ZoneId 收录的时区和偏移量
- Sencha学习笔记2:打包您的第一个Sencha安卓应用apk安装包
- Java为什么要有基本数据类型和包装类型
- python手机号码标记_python 判断号码是否可用(号码过滤)
- 服务器阵列有什么作用,服务器存储-存储服务器和磁盘阵列有什么区别