`
purpen
  • 浏览: 785536 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP算法:直接插入排序

阅读更多

直接插入排序(Straight Insertion Sort)是一种最为简单的排序方法,因此也被称为简单插入排序。

直接插入排序的基本思想是:第i趟排序将序列中的第i+1个元素Ki+1插入到一个已经按值有序的子序列(k1,k2,...,ki)中合适的位置,使得插入后的序列依然保持按值有序。

 

算法描述
实现程序

void insert_sort(ElemType a[],int n)
//待排序元素用一个数组a表示,数组有n个元素
{ int i,j;
   ElemType t;
   for ( i=1; i<n; i++) //i表示插入次数,共进行n-1次插入
  { t=a[i]; //把待排序元素赋给t
     j=i-1;
    while ((j>=0)&& (t<a[j]))
    { a[j+1]=a[j]; j--; } // 顺序比较和移动
       a[j+1]=t;}
}

 PHP实现的代码(实现从大到小的排列次序 ):

 

$arr1 = array(-111,2,5,6,3,7,8,0,9,12,1);

function insertsort($arr1,$max=10){
	
	for($i=1;$i<=$max;$i++){
		$tmp = $arr1[$i];
		$j = $i - 1;
		while($j>=0 && $tmp>$arr1[$j]){
			$arr1[$j+1] = $arr1[$j];
			$j--;
		}
		$arr1[$j+1] = $tmp;
	}
	
	return $arr1;
}
 

PHP实现的代码(实现从小到大的排列次序 ):

 

$arr1 = array(-111,2,5,6,3,7,8,0,9,12,1);

function insertsort($arr1,$max=10){
	
	for($i=1;$i<=$max;$i++){
		$tmp = $arr1[$i];
		$j = $i - 1;
		while($j>=0 && $tmp<$arr1[$j]){
			$arr1[$j+1] = $arr1[$j];
			$j--;
		}
		$arr1[$j+1] = $tmp;
	}
	
	return $arr1;
}
 
分享到:
评论

相关推荐

    PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析

    主要介绍了PHP排序算法之直接插入排序(Straight Insertion Sort),结合实例形式较为详细的分析了直接插入排序算法的原理与实现技巧,需要的朋友可以参考下

    PHP排序算法系列之插入排序详解

    插入排序 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将...直接插入排序(Inserti

    PHP排序算法之希尔排序(Shell Sort)实例分析

    希尔排序是指记录按下标的一定增量分组,对每一组使用 直接插入排序 ,随着增量逐渐减少,每组包含的关键字越来越多,当增量减少至 1 时,整个序列恰好被分成一组,算法便终止。 操作步骤: 先取一个小于 n(序列...

    php常用算法(doc)

    这里是用PHP写的几个基础算法,算法的重要性貌似对于PHP程序员不怎么重要,其实是非常重要的,经典名句:算法+数据结构=程序。作为一名真正的高级PHP程序员,我认为应该熟悉C,如果你想成为真正的程序员,请好好学C...

    PHP工作笔记.zip

    [十一例 支付功能][十二例 文件上传AjaxFileUpload.js][十三例 文件上传Uploadify][十四例 Smarty模板][十五例 ThinkPHP5模板][十六例 二分查找][十七例 交换排序 - 冒泡排序][十八例 插入排序 - 直接插入排序][十九...

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

    # 直接插入排序算法 def insertionSort(a): for i in range(1,len(a)): # 若下标为i的元素小于下标为i-1的元素,则将下标为i的元素放到合适位置 if a[i] &lt; a xss=removed xss=removed&gt;= 0 and tm

    PHP排序算法的复习和总结

    php /* * 插入排序(一维数组) * 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当的位置,使数列依然有序;直到待排序的数据元素全部插入完成为止。 */ function insertSort($arr){ if(!is_array...

    C#红黑树算法实现--实现插入,删除,旋转算法

    红黑树的文章看了很多,但个人感觉这一篇: http://zh.wikipedia.org/w/index.php?title=%E7%B4%85%E9%BB%91%E6%A8%B9&variant=zh-cn...看我写的文章都直接给代码,很少写文字.太懒了.以后要多多锻炼.

    PHP开发实战1200例源码

    实例022 在表格中插入宠物照片 38 实例023 Dreamweaver创建表单 40 实例024 Dreamweaver中创建和附加CSS样式 42 实例025 Dreamweaver控制弹出信息 45 实例026 Dreamweaver控制浏览器的窗口 46 实例027 通过...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例022 在表格中插入宠物照片 38 实例023 Dreamweaver创建表单 40 实例024 Dreamweaver中创建和附加CSS样式 42 实例025 Dreamweaver控制弹出信息 45 实例026 Dreamweaver控制浏览器的窗口 46 实例027 通过...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例022 在表格中插入宠物照片 38 实例023 Dreamweaver创建表单 40 实例024 Dreamweaver中创建和附加CSS样式 42 实例025 Dreamweaver控制弹出信息 45 实例026 Dreamweaver控制浏览器的窗口 46 实例027 通过...

    php网络开发完全手册

    第8章 数组操作与数据结构算法 119 8.1 一维数组与多维数组 119 8.1.1 一维数组简介 119 8.1.2 多维数组简介 119 8.2 常用的数组操作 120 8.2.1 数组的创建与调用 120 8.2.2 数组的更新 121 8.2.3 数组元素的遍历 ...

    Excel百宝箱8.0

    【公农双历查询】【高级定位】【选区背景着色】【修改文件建立时间】【工作表环境设置】【按颜色合计】【根据工资计算钞票】【隔行插入行】【折分工作簿(工作表)】【工作表折分】【合并工作簿】【文本与数值互换】...

    javascript入门笔记

    Javascript Basic 1、Javascript 概述(了解) Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS...

    Collector资料收集管理器

    3、添加在文档中插入图片和插入附件功能; 4、添加在线升级功能; 5、添加重要更能:支持所有文件类型; 6、添加自定义热键功能; 7、添加多种选项把保存网页成图片。 8、修改抓图模式。 9、修正一些错误。 ...

Global site tag (gtag.js) - Google Analytics