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

 更新时间:2017年05月11日 07:36:49   投稿:jingxian  
下面小编就为大家带来一篇插入排序_Python与PHP的实现版(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

插入排序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的实现版(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Pytorch在dataloader类中设置shuffle的随机数种子方式

    Pytorch在dataloader类中设置shuffle的随机数种子方式

    今天小编就为大家分享一篇Pytorch在dataloader类中设置shuffle的随机数种子方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python测试框架:pytest学习笔记

    Python测试框架:pytest学习笔记

    这篇文章主要介绍了Python测试框架:pytest的相关资料,帮助大家更好的利用python进行单元测试,感兴趣的朋友可以了解下
    2020-10-10
  • Python将字符串常量转化为变量方法总结

    Python将字符串常量转化为变量方法总结

    在本篇内容里我们给大家整理了一篇关于Python将字符串常量转化为变量方法的知识点总结,有需要的朋友们学习下。
    2019-03-03
  • 基于Python中的yield表达式介绍

    基于Python中的yield表达式介绍

    今天小编就为大家分享一篇基于Python中的yield表达式详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python编程开发之类型转换convert实例分析

    python编程开发之类型转换convert实例分析

    这篇文章主要介绍了python编程开发之类型转换convert用法,结合实例形式分析了Python中常见的数据类型及类型转换convert的具体使用方法,需要的朋友可以参考下
    2015-11-11
  • django中上传图片分页三级联动效果的实现代码

    django中上传图片分页三级联动效果的实现代码

    这篇文章主要介绍了django中上传图片分页三级联动效果的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-08-08
  • 基于python+selenium自动健康打卡的实现代码

    基于python+selenium自动健康打卡的实现代码

    这篇文章主要介绍了基于python+selenium自动健康打卡,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python正则表达式教程之二:捕获篇

    Python正则表达式教程之二:捕获篇

    什么是捕获呢?使用小括号指定一个子表达式后,匹配这个子表达式的文本(即匹配的内容)可以在表达式或者其他过程中接着用,下面这篇文章就主要介绍了Python正则表达式中关于捕获的相关资料,需要的朋友可以参考下。
    2017-03-03
  • 人脸检测实战终极之OpenCV+Python实现人脸对齐

    人脸检测实战终极之OpenCV+Python实现人脸对齐

    这篇文章主要是为了演示如何使用 OpenCV、Python 和面部标志从而实现对齐人脸。文中示例代码对我们的工作或学习有一定的帮助,感兴趣的小伙伴可以学习一下
    2021-12-12
  • python利用MethodType绑定方法到类示例代码

    python利用MethodType绑定方法到类示例代码

    这篇文章主要给大家介绍了关于python利用MethodType绑定方法到类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08

最新评论