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; } //快速排序 } } 算法简单练习