插入排序_Python与PHP的实现版(推荐)


Posted in Python onMay 11, 2017

插入排序Python实现

import random

a=[random.randint(1,999) for x in range(0,36)]

# 直接插入排序算法
def insertionSort(a):
  for i in range(1,len(a)):
    # 若下标为i的元素小于下标为i-1的元素,则将下标为i的元素放到合适位置
    if a[i] < a[i-1]:
      tmp = a[i]
      j = i-1
      # 寻找a[i]的合适位置,并将a[i-1]至a[i]新位置的元素依次后移
      while j >= 0 and tmp < a[j]:
        a[j+1] = a[j]
        j = j-1

      # 将a[i]放到新位置
      a[j+1] = tmp

insertionSort(a)
print(a)

插入排序PHP实现

<?php
// 生成待排序数组
$a = [];
for($i=0;$i<36;$i++){
  array_push($a,mt_rand(1,999));
}
shuffle($a);

/**
 * 插入排序 insertion sort
 * @param [type] $a 待排序数组的引用
 * @return null
 */
function insertionSort(&$a){
  for($i = 1;$i<count($a);$i++){
    // 若下标为i的元素小于下标为i-1的元素,则将下标为i的元素放到合适位置
    if($a[$i] < $a[$i-1]){
      $tmp = $a[$i];
      // 寻找a[i]的合适位置,并将a[i-1]至a[i]新位置的元素依次后移
      for($j = $i-1; $j>=0 && $tmp<$a[$j];$j--)
        $a[$j+1] = $a[$j];
      // 将a[i]放到新位置
      $a[$j+1] = $tmp;
    }
  }

}

insertionSort($a);
var_dump($a);

插入排序时间复杂度分析

插入排序算法的时间复杂度为O(n2),但是插入排序法比冒泡和选择排序的性能更好。

以上这篇插入排序_Python与PHP的实现版(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python抓取豆瓣图片并自动保存示例学习
Jan 10 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
点球小游戏python脚本
May 22 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
python软件都是免费的吗
Jun 18 Python
Keras模型转成tensorflow的.pb操作
Jul 06 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 Python
Python字典dict常用方法函数实例
Nov 09 Python
python Xpath语法的使用
Nov 26 Python
python元组拆包实现方法
Feb 28 Python
Python实现计算两个时间之间相差天数的方法
May 10 #Python
Python开发的实用计算器完整实例
May 10 #Python
Python只用40行代码编写的计算器实例
May 10 #Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 #Python
python 3.5下xadmin的使用及修复源码bug
May 10 #Python
Python遍历文件夹和读写文件的实现方法
May 10 #Python
python中requests小技巧
May 10 #Python
You might like
PHP文本数据库的搜索方法
2006/10/09 PHP
投票管理程序
2006/10/09 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
jquery delay()介绍及使用指南
2014/09/02 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
JS实现复制功能
2017/03/01 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
Python序列操作之进阶篇
2016/12/08 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
python银行系统实现源码
2019/10/25 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
python global和nonlocal用法解析
2020/02/03 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
Python读写Excel表格的方法
2021/03/02 Python
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
经济与贸易专业应届生求职信
2013/11/19 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
办公室保洁员岗位职责
2013/12/02 职场文书
培训讲师邀请函
2014/01/10 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
婚假请假条怎么写
2014/04/10 职场文书
综合素质自我评价评语
2015/03/06 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
js基础语法与maven项目配置教程案例
2021/07/15 Javascript
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang