插入排序_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的Urllib库的一些高级用法
Apr 30 Python
解读Django框架中的低层次缓存API
Jul 24 Python
Python WSGI的深入理解
Aug 01 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
django orm模块中的 is_delete用法
May 20 Python
如何基于python把文字图片写入word文档
Jul 31 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
Nov 09 Python
python list的index()和find()的实现
Nov 16 Python
Python如何实现Paramiko的二次封装
Jan 30 Python
python - timeit 时间模块
Apr 06 Python
Python使用华为API为图像设置多个锚点标签
Apr 12 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中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
js获取变量
2006/08/24 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
python类参数self使用示例
2014/02/17 Python
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
pytorch标签转onehot形式实例
2020/01/02 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
违反校纪校规检讨书
2014/02/15 职场文书
物流专员岗位职责
2014/02/17 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
学校火灾防控方案
2014/06/09 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript