数据结构练习:排序

来源:互联网 发布:dnf怎么优化 编辑:程序博客网 时间:2024/06/06 03:06

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;  
        }  
        //快速排序  
      
 
    }  


 

原创粉丝点击