插入排序_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程序中操作文件之flush()方法的使用教程
May 24 Python
Django数据库表反向生成实例解析
Feb 06 Python
python使用json序列化datetime类型实例解析
Feb 11 Python
Python+request+unittest实现接口测试框架集成实例
Mar 16 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
Python数据报表之Excel操作模块用法分析
Mar 11 Python
python flask框架实现重定向功能示例
Jul 02 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
编写python代码实现简单抽奖器
Oct 20 Python
Python 语言实现六大查找算法
Jun 30 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设置session值和cookies的学习示例
2014/03/21 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
生物科学系大学生的自我评价
2013/12/20 职场文书
个人求职信范例
2014/01/29 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
教师岗位说明书
2015/09/30 职场文书
创业计划书之溜冰场
2019/10/25 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
Python jiaba库的使用详解
2021/11/23 Python