常用排序方法(C#)

来源:互联网 发布:淘宝买美版官换机6s 编辑:程序博客网 时间:2024/06/04 23:22

public class SortAlgorithm {
       
/**
 * 冒泡排序法
 * @param numlist
 */
private void bubbleSort(int[] numlist)
{
int out,in;
for(out=numlist.length-1;out>1;out--)
{
        for(in=0;in<out;in++)
        {
                if(numlist[in]>numlist[in+1])
                {
                        int temp=numlist[in];
                        numlist[in]=numlist[in+1];
                        numlist[in+1]=temp;
                }
        }
}
}

/**
 * 插入排序
 * @param numlist
 */
private void insertSort(int[]numlist)
{
        int in,out;
        for(out=1;out<numlist.length;out++)
        {
                int temp=numlist[out];
                in=out;
                while(in>0&&numlist[in-1]==temp)
                {
                numlist[in]=numlist[in-1];
                in--;
                }
                numlist[in]=temp;
        }
}

/**
 * 选择排序
 */
private void selectionSort(int[]numlist)
{
        int in,out,min;
        for(out=0;out<numlist.length-1;out++)
        {
                min=out;
                for(in=out+1;in<numlist.length;in++)
                {if(numlist[in]<numlist[min])
                        min=in;
                int temp=numlist[out];
                numlist[out]=numlist[min];
                numlist[min]=temp;
                }
                }
}

/**
 * 输出数组各值
 * @param numlist
 */
private void display(int[]numlist)
{
        for(int i=0;i<numlist.length;i++)
        {
                System.out.print(numlist[i]+" ");
        }
        System.out.println("  ");
}

public static void main(String[] args)
{
        int numlist[]=new int[]{45,167,199,-4,9,123,7,24,66,18};
        System.out.print("原序为:");
        SortAlgorithm sort=new SortAlgorithm();
        sort.display(numlist);
       
        long begin=System.currentTimeMillis();
        sort.bubbleSort(numlist);
        long end=System.currentTimeMillis();
        System.out.println("冒泡排序用时为:"+(end-begin));
        System.out.print("排序后:");
        sort.display(numlist);
       
         begin=System.currentTimeMillis();
        sort.insertSort(numlist);
         end=System.currentTimeMillis();
        System.out.println("插入排序用时为:"+(end-begin));
        System.out.print("排序后:");
        sort.display(numlist);
       
         begin=System.currentTimeMillis();
        sort.selectionSort(numlist);
         end=System.currentTimeMillis();
        System.out.println("选择排序用时为:"+(end-begin));
        System.out.print("排序后:");
        sort.display(numlist);
}
}