package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.text.TextField;
public class BubbleSort extends Sprite
{
private var txtold:TextField=new TextField();
private var txtnew:TextField=new TextField();
private var oldArr:Array=[];
public function BubbleSort()
{
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
txtold.text="原先的数组是:";
for(var i:int=0;i<6;i++){
oldArr.push(int(Math.random()*100));
txtold.appendText(" , "+oldArr[i]);
}
addChild(txtold);
txtold.x=100;
txtold.y=50;
txtold.width=400;
txtold.height=30;
txtnew.text="新的数组是:";
addChild(txtnew);
txtnew.x=100;
txtnew.y=150;
txtnew.width=400;
txtnew.height=30;
//var newArr:Array=bubble();
//var newArr:Array= selectSort();
var newArr:Array= insertSort();
for(var j:int=0;j<newArr.length;j++){
txtnew.appendText(" , "+newArr[j]);
}
}
private function insertSort():Array{
var temp:int=0;
var index:int=0;
for(var i:int=1; i<oldArr.length;i++)
{
//每次把要比较的部分的第一个存为最大
temp=oldArr[i];
index=i;
//把标记的项插入相应的位置
while(index>0 && oldArr[index-1]<temp){
//前面排序好的项一个个往后推
oldArr[index]=oldArr[index-1];
//计算出标记的项能放的位置
--index;
}
//把排序号的项往后推一位之后,插入标记的项到相应的位置
oldArr[index]=temp;
}
return oldArr;
}
}
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.text.TextField;
public class BubbleSort extends Sprite
{
private var txtold:TextField=new TextField();
private var txtnew:TextField=new TextField();
private var oldArr:Array=[];
public function BubbleSort()
{
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
txtold.text="原先的数组是:";
for(var i:int=0;i<6;i++){
oldArr.push(int(Math.random()*100));
txtold.appendText(" , "+oldArr[i]);
}
addChild(txtold);
txtold.x=100;
txtold.y=50;
txtold.width=400;
txtold.height=30;
txtnew.text="新的数组是:";
addChild(txtnew);
txtnew.x=100;
txtnew.y=150;
txtnew.width=400;
txtnew.height=30;
//var newArr:Array=bubble();
//var newArr:Array= selectSort();
var newArr:Array= insertSort();
for(var j:int=0;j<newArr.length;j++){
txtnew.appendText(" , "+newArr[j]);
}
}
private function insertSort():Array{
var temp:int=0;
var index:int=0;
for(var i:int=1; i<oldArr.length;i++)
{
//每次把要比较的部分的第一个存为最大
temp=oldArr[i];
index=i;
//把标记的项插入相应的位置
while(index>0 && oldArr[index-1]<temp){
//前面排序好的项一个个往后推
oldArr[index]=oldArr[index-1];
//计算出标记的项能放的位置
--index;
}
//把排序号的项往后推一位之后,插入标记的项到相应的位置
oldArr[index]=temp;
}
return oldArr;
}
}
}
下一篇是栈和队列的算法