`
wala1118
  • 浏览: 838 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

AS3版 的二分插入

    博客分类:
  • AS3
阅读更多
刚好在工作中要用到,就贴上来了,当成是博客的第一篇了。。。
在一个已经排序的数组中插入一个项,返回一个新的数组,parameter为对比的参数:
/**
		 * 对一个已经有序的数组按参数执行二分插入排序 
		 * @param data 已经排序的数组
		 * @param item	插入项
		 * @param parameter 对比参数
		 * @return 
		 * 
		 */			
		public static function sortByInsert(data:Array,item:*,parameter:String):Array
		{
			if(data.length == 0)
			{
				data = data.concat();
				data.push(item);
			}
			else
			{
				var isHigToLow:Boolean;
				if(data.length > 2)
				{
					if(data[0][parameter] > data[1][parameter])
					{
						isHigToLow = true;
						data = data.concat().reverse();
					}
					else
					{
						data = data.concat();
					} 
				}
				var start:int = 0;
				var end:int = data.length - 1;
				var middle:int;
				//item参数最小
				if(item[parameter] < data[start][parameter] || !item[parameter])
				{
					data.unshift(item);
				}
				else if(item[parameter] > data[end][parameter]) //item参数最大
				{
					data.push(item);
				}
				else
				{
					while(start != end - 1)
					{
						middle = (start + end) >> 1;
						if(item[parameter] >= data[middle][parameter])
						{ 
							start = middle;
						}
						else
						{
							end = middle;	
						}
					}
					data.splice(end,0,item);
				}
				data = isHigToLow ? data.reverse() : data;
			}
			return data;
		}

分享到:
评论

相关推荐

    as3算法大全

    AS3中常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序等。其中,快速排序和归并排序在大数据量时表现优秀,但快速排序更易于实现。 三、搜索算法 搜索算法包括线性搜索、二分搜索、...

    VB 二分查找

    然而,如果数据未排序或经常需要插入和删除元素,二分查找可能不是最佳选择,因为这些操作会破坏已排序的顺序。 ### 5. 扩展讨论 - **变种与优化**:二分查找可以进行一些变种,例如对链表的二分查找,或者在有...

    Sqlserver大数据量插入速度慢或丢失数据的解决方法

    3. **锁竞争**:并发插入时,锁竞争也会导致性能下降。 4. **资源限制**:系统资源(如CPU、内存)不足也会影响插入速度。 #### 数据丢失的原因分析 1. **并发控制不当**:多线程或多个进程同时插入数据时,如果...

    MSSQL 循环插入语句

    #### 二、主要组件解析 ##### 1. 存储过程:`insert_data` 存储过程`insert_data`的主要作用是根据传入的字符串参数`@ColumnString`和`@ColumnValues`进行循环插入操作,并返回一个整型值`@result2`表示插入是否...

    在网页中播放ASF FLV流媒体文件的方法

    - 设计一个左右分帧的框架结构,左侧显示ASF文件,右侧显示相关的网页内容。 - 左侧帧命名为 `video`,右侧帧命名为 `content`。 - **技术实现**: - 在ASF文件中插入URL信息。 - 当播放到特定时间点时,右侧帧...

    新技术培训 培训讲义6_排序算法.doc

    二分法排序则利用了二分查找的思想来提高插入排序的效率。在插入第i个元素时,不直接线性搜索插入位置,而是通过不断折半的方式快速定位。步骤如下: 1. 使用二分查找确定第i个元素应插入的位置。 2. 一旦找到插入...

    南开100题分类txt版

    - **算法**:排序(冒泡、选择、插入、快速、归并等)、查找(顺序、二分、哈希等)、递归、动态规划等。 - **操作系统**:进程、线程、内存管理、调度算法、I/O模型等。 - **计算机网络**:TCP/IP协议栈、...

    VC的Excel插入数据实例

    【描述】提到,源码主要实现了两个核心功能:一是创建一个新的Excel工作簿,二是向工作簿的特定单元格插入数据。此外,它还扩展到在已有的行之前插入新行的功能。这对于开发者来说,是一个非常实用的技巧,能够帮助...

    PCIE 3.0规范

    #### 二、PCI Express 3.0简介 PCI Express 3.0(以下简称PCIe 3.0)于2010年11月10日发布,是PCIe 2.0的后续版本。该版本主要改进了数据传输速率,将每通道的数据传输率从5.0 GT/s提升到了8.0 GT/s,同时引入了一...

    SQL语句练习附个人答案

    ### 二、数据插入操作 1. **学生数据插入**: - 示例插入语句如下: ```sql INSERT INTO STUDENTS VALUES('108', '曾华', '男', to_date('1977-09-01', 'yyyy-mm-dd'), '95033'); ``` 2. **课程数据插入**: ...

    全国计算机二级VB考试09年9月上机题目

    3. **成绩计算**:使用循环计算每个考生的总成绩,并计算去掉最高分和最低分后的平均分。 4. **数组排序**:使用冒泡排序算法对考生按照平均分进行排序。 #### 题目五:解二次方程 **题目描述**: 编写一个程序,...

    南开100题分类txt版 计算机三级上机考试

    2. **算法与数据结构**:排序算法(冒泡、选择、插入、快速、归并等)、查找算法(顺序、二分、哈希)以及栈、队列、链表、树等数据结构的运用。 3. **文件操作**:文件的打开、读写、关闭,以及文件流的处理。 4....

    SQL Server 存储层级数据实现无限级分类,左右值分类

    #### 二、左右值分类原理 左右值分类的核心思想是将层级结构转换为线性序列,通过左值和右值来定义每个节点的位置及范围。其中: - **左值**:代表节点的起始位置; - **右值**:代表节点的结束位置。 例如,在一...

    VB.net编写的双向链表

    `Search`方法可以使用线性搜索或者更高效的算法(如二分查找,但需要链表已排序)。`Sort`方法可以使用各种排序算法,如冒泡排序、插入排序、快速排序等,根据具体需求选择。`Print`方法展示了双向遍历的能力,既...

    word批量添加千分符

    二、使用Word宏批量添加千分符 对于更复杂的需求,比如有特定格式的数字,或者需要处理大量文档时,可以编写宏来实现。宏是Visual Basic for Applications (VBA)的代码,可以直接在Word中执行。以下是一个简单的宏...

    一些常见的SQL语句示例,包括查询、插入、更新和删除操作

    CREATE VIEW v_employees AS SELECT first_name, last_name, department FROM employees; ``` **9. 触发器** - **定义**: 触发器是与表相关联的一组操作,当满足特定条件时自动执行。它可以在插入、更新或删除...

    数据库中,无限制分类思路及简单例子.

    ##### 二、无限制分类的实现方法 无限制分类可以通过多种方式实现,其中较为常见的有自关联表法、路径记录法等。这里主要介绍自关联表法,因为它能够清晰地展示出数据之间的层级关系,并且易于理解和维护。 #### ...

    数据库原理实验三 单表查询-模板.doc

    - 计算“002”号课程的平均成绩、最高分、最低分:`SELECT AVG(成绩) AS 平均成绩, MAX(成绩) AS 最高分, MIN(成绩) AS 最低分 FROM sc WHERE 课程号 = '002'` 12. **使用GROUP BY子句进行查询** - 各班级学生总...

    关于执行器传感器接口.pdf

    二、AS-interface简介 AS-interface(Actuator-Sensor interface),即执行器-传感器接口,是一种专为工厂自动化设计的开放式现场总线标准。它允许简单的现场设备(如传感器、执行器和操作员终端)以最低的成本和...

    c语言面试题及答案.docx

    在顺序表中使用二分查找,可以快速定位目标值。例如,对于顺序表(3, 6, 8, 10, 12, 15, 16, 18, 21, 25, 30),查找关键码值11,需要进行4次比较,分别是15, 8, 10, 12。 5. 链表的指针单元: 对于n个结点的单向...

Global site tag (gtag.js) - Google Analytics