2015年4月23日 星期四

[Java] Insert sort 插入排序法

Java:
public class InsertSort {
    int data[] = new int[6];
    int size = data.length;


    public static void main(String args[])
    {
        System.out.print("123");
        InsertSort is = new InsertSort();
        is.inputarr();
        is.showData();
        is.insert();
    }
 void inputarr()
    {
        int i;
        for( i = 0 ; i<size; i++)
        {
            try{
                System.out.print("please input:"+(i+1) +"element:");
                InputStreamReader isr = new InputStreamReader(System.in);
                BufferedReader br = new BufferedReader(isr);
                data[i] = Integer.parseInt(br.readLine());
            }
            catch (Exception e)
            {

            }

        }
    }
 void showData()
    {
        int i;
        for(i = 0 ; i<size;i++)
        {
            System.out.print(data[i]+" ");

        }
        System.out.print("\n");
    }


時間複雜度為:O(n^2)
最壞及平均需較(n-1) + (n-2)+....3+2+1 = n(n-1)/ 2次

insert sort建議在錄結串列上使用,因為會常造成資料的大量搬移。

沒有留言: