package
{
/* 三种算法有时候不太记得,可以多看,升序和降序的分别,
还有快速排序和其他等排序算法
*/
import flash.display.Sprite;
import flash.events.*;
public class Main extends Sprite
{
private var array:Array=new Array(1,3,2,4,7,5,8,10,9,6,-1);
private var temp:Number;
public function Main()
{
trace(SelectSort(array));//向上冒泡算法
}
//向上冒泡算法,和向下冒泡算法一样
public function BubbleSort(array:Array):Array
{
for (var i:int=0; i < array.length; i++)
{
for (var j:int=0; j < array.length - i; j++)
{
if (array[j] > array[j + 1])
{
temp=array[j];
array[j]=array[j + 1];
array[j + 1]=temp;
}
}
}
return array;
}
//选择排序,序列调换
public function SelectSort(array:Array):Array
{
var min:Number;
var temp:Number;
for (var i:int=0; i < array.length - 1; i++)
{
min=i;//从待测表当中选择最小的,进行交换位置,然后拿第二个最小进行交换位置
//每一个进行比较
for (var j:int=i; j < array.length; j++)
{
if (array[j] < array[min])
{
min=j;
}
if (min != i)
{
temp=array[i];
array[i]=array[min];
array[min]=temp;
}
}
}
return array;
}
//插入排序=已经排序好+没排序好
public function InsertSort(array:Array):Array
{
var temp:Number;
for (var i:int=0; i < array.length - 1; i++)
{
temp=array[i + 1];//从无序表拿数
for (var j:int=i; j > -1; j--)
{
if (array[j] > temp)
{
array[j + 1]=array[j];
array[j]=temp;
}
}
}
return array;
}
//快速排序
}
}