论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

数组二叉查找算法(as2.0)

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:08:34


该算法首先找到数组中间位置的元素,并将其与查找值比较,如果相等,就返回该元素的索引;否则就将问题简化为查找数组的一半元素。如果查找值小于中间元素,就查找数组的前半部分,否则就查找数组的后半部分。看下面代码:

package {
	import flash.display.Sprite;

	/**
	 * @author Flying
	 */
	public class Array2 extends Sprite {
		public function Array2() {
			var array : Array = [4, 5, 6, 7, 9, 13, 17];
			trace("13的索引位置: " + indexOf(array, 13));
		}

		/** 采用二叉查找算法 */
		public static function indexOf(array : Array, value : int) : int {
			var low : int = 0;
			var high : int = array.length - 1;
			var middle : int;

			while (low < high) {
				middle = (low + high) / 2; 
				// 计算中间元素的索引
				print(array, middle); 
				// 打印数组,用于跟踪查找过程
				if (array[middle] == value)
				return middle;

				if (value < array[middle])
				high = middle;
			else
				low = middle;
			}
			return -1; // 没有找到该元素,返回-1
		}

		private static function print(array : Array, middle : int) : void {
			for (var i : uint = 0;i < array.length; i++) {
				trace(array[i]);
				if (i == middle)
				trace("*");
				trace("  ");
			}
		}
	}
}

/*
4  5  6  7*  9  13  17  
4  5  6  7  9*  13  17  
4  5  6  7  9  13*  17  
13的索引位置:5
*/

为方便测试,继承了Sprite类。

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058