插入排序_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中static相关知识小结
Jan 02 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
May 04 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
对Django外键关系的描述
Jul 26 Python
Flask框架单例模式实现方法详解
Jul 31 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 Python
Python 高效编程技巧分享
Sep 10 Python
Python中Selenium模块的使用详解
Oct 09 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
How do I change MySQL timezone?
2008/03/26 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
PHP HTTP 认证实例详解
2016/11/03 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
vue使用vue-cli快速创建工程
2017/07/28 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
使用Python抓取模板之家的CSS模板
2015/03/16 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
python3中获取文件当前绝对路径的两种方法
2018/04/26 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
java关于string最常出现的面试题整理
2021/01/18 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
优秀士兵个人事迹材料
2014/01/19 职场文书
产品质量承诺范本
2014/03/31 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
房屋所有权证明
2014/10/20 职场文书
顶岗实习协议书
2015/01/29 职场文书
资料员岗位职责范本
2015/04/13 职场文书
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL