定义数组长度变量$len,使用count()函数,参数:数组

for循环数组,条件:从第二个开始,遍历数组,循环内

定义临时变量$temp,赋值当前元素

for循环数组,条件:遍历当前元素前面的所有元素

判断当前元素与它前面的元素的大小,利用临时变量,转换变量

PHP版:

<?php
$arr=array(2,3,4,1,5);
function insert_sort($arr){
$len=count($arr);
for($i=1;$i<$len;$i++){
$temp=$arr[$i];
for($j=$i-1;$j>=0;$j--){
if($temp<$arr[$j]){
$arr[$j+1]=$arr[$j];
$arr[$j]=$temp;
}else{
break;
}
}
}
return $arr;
}
$arr=insert_sort($arr);
print_r($arr);

java版:

package com.tsh.mthread;

public class Home {

    public static void main(String[] args) {
int[] arr=new int[]{2,3,4,1,5};
arr=insert_sort(arr);
for(int x:arr){
System.out.println(x);
} }
/**
* 插入排序
* @param arr
* @return
*/
public static int[] insert_sort(int[] arr) {
int len=arr.length;
for(int i=1;i<len;i++){
int temp=arr[i];
for(int j=i-1;j>=0;j--){
if(temp<arr[j]){
arr[j+1]=arr[j];
arr[j]=temp;
}else{
break;
}
}
}
return arr;
}
}

[PHP] 看博客学习插入排序的更多相关文章

  1. [javaSE] 看博客学习多线程的创建方式和优劣比较和PHP多线程

    通过实现Runnable接口创建线程 获取Thread对象,new出来,构造函数参数:Runnable对象 Runnable是一个接口,定义一个类MyRunnable实现Runnable接口,实现ru ...

  2. [PHP] 看博客学习观察者模式

    具体应用场景是,当subject的某个动作需要引发一系列不同对象的动作(比如你是一个班长要去通知班里的某些人),与其一个一个的手动调用触发的方法(私下里一个一个通知),不如维护一个列表(建一个群),这 ...

  3. [android] 看博客学习hashCode()和equals()

    equals()是Object类提供的一个方法,众所周知,每一个java类都继承自Object,所以说每一个对象都有一个equals()方法,我们在用这个方法时却一般重写这个方法 Object类中eq ...

  4. [android] 看博客学习Android常见的几种RuntimeException

    异常分为两种: 1.编译时异常 当编译时异常抛出时,需要对其进行处理声明,否则编译不通过 2.运行时异常 编译时不检测,运行时 如果抛出,程序会立刻停止 NullPointerException 空指 ...

  5. [javaSE] 看博客学习java并发编程

    共享性 多线程操作同一个数据,产生线程安全问题 新建一个类ShareData 设计一个int 型的成员变量count 设计一个成员方法addCount(),把count变量++ 在main函数中开启多 ...

  6. [css3] 看博客学习别人的旋转的星球

    定义一个div 太阳轨道sunline,边框显示出来,定义position为relative #sunline{ width: 500px; height: 500px; border:2px sol ...

  7. FPGA一个博客学习

    FPGA一个博客学习 http://bbs.ednchina.com/BLOG_PERSONALCAT_100185_2001619.HTM

  8. EF6 Code First 博客学习记录

    学习一下ef6的用法 这个学习过程时按照微软官网的流程模拟了一下 就按照下面的顺序来写吧 1.连接数据库  自动生成数据库 2.数据库迁移 3.地理位置以及同步/异步处理(空了再补) 4.完全自动迁移 ...

  9. 做个开源博客学习Vite2 + Vue3 (一)搭建项目

    前言 不会 webpack,遇到报错就一头雾水,完全不知道怎么办,而且体积还大速度还慢. 所以尤雨溪做了 vite 后就很向往,只是知道自己水平有限还是等大佬先趟趟坑,等差不多了在跳. 现在vite2 ...

随机推荐

  1. winfrom图片放大器

    废话不多说,直接上图看效果,左上角是原图片大小,右边是局部放大的效果 主要代码贴在下面,picBox是原图控件名,picBox_Show是放大控件名 private void picBox_Paint ...

  2. Python3.5 学习二十

    学会用三种方法检索数据 1.对象方式 2.字典方式 3.元组方式 models后面,如果是.values() 则为字典方式 如果是value_list() 则为元组方式 跨表操作时,如果是对象,可以用 ...

  3. spring cloud学习(二) 调用服务

    spring-cloud调用服务有两种方式,一种是Ribbon+RestTemplate, 另外一种是Feign. Ribbon是一个基于HTTP和TCP客户端的负载均衡器,其实feign也使用了ri ...

  4. Linux巩固记录(6) Hbase环境准备-zookeeper安装

    Hbase是运行在hadoop之上,所以请参考第3篇文章搭建好一个master,两个slave的hadoop环境,我采用的版本为hadoop2.7.4 不了解Hbase的同学可以参考下这篇文章,分析得 ...

  5. vue项目经验:图形验证码接口get请求处理

    一般图形验证码处理: 直接把img标签的src指向这个接口,然后在img上绑定点击事件,点击的时候更改src的地址(在原来的接口地址后面加上随机数即可,避免缓存) <img :src=" ...

  6. 移动一根火柴使等式成立js版本

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  7. Liferay7 BPM门户开发之2: BPMN 2.0 规范入门 (Activiti BPMN extensions)

    Liferay最大的问题是BPM弱,如果做企业开发,BPM必不可少,所以直入主题,做个BPMN2入门. 本文参考地址:http://activiti.org/userguide/index.html# ...

  8. 人工智能-机器学习之Selenium(chrome驱动,火狐驱动)

    selenium是一个用于web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Mozilla Suite等 ...

  9. js变量提升

    JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部: 'use strict'; function foo() { var x = 'Hello, ...

  10. 封了1000多个IP地址段,服务器现在坚如磐石,对付几个小毛贼还是很轻松的

    封了1000多个IP地址段,服务器现在坚如磐石 root登陆权限取消,防火墙装上,关闭所有没必要的端口,外层加装路由器映射, 修改常用端口,将常用端口改成陷阱程序,只要访问我这些陷阱端口,程序直接dr ...