java實現插入排序演算法

來源:互聯網
上載者:User

定義一個資料類,主要是定義一些常用的方法,方便以後寫別的排序時和插入排序使用同樣的資料,比較下演算法的執行時間。

public class DataSource {public static int SIZE = 1001;public static int[] getIntArray(){int[] dataArray = new int[SIZE];for(int i = 1; i < SIZE; i++){dataArray[i] = SIZE - i;}return dataArray;}public static void logs(String pLog){System.out.println("longs = " + pLog);}}

定義一個插入排序的類,主要負責對給定的資料進行插入排序,同時列印排序前的數組、排序時間及排序後的數組。

public class SortByInsert {public static void main(String args[]) {SortByInsert mSortByInsert = new SortByInsert();mSortByInsert.sortByInsert();}public void sortByInsert() {int[] dataArray = DataSource.getIntArray();printArray("Begin", dataArray);long beginTime = System.currentTimeMillis();for (int i = 2; i < dataArray.length; i++) {moveAndInsertItem(dataArray, 1, i - 1, i);}long endTime = System.currentTimeMillis();long spendTime = endTime - beginTime;printString("spend_time(int Mills) = " + spendTime);printArray("End", dataArray);}public void moveAndInsertItem(int[] pDataArray, int pBegin, int pEnd,int pAboutInsert) {for (int i = pBegin; i <= pEnd; i++) {if (pDataArray[i] > pDataArray[pAboutInsert]) {int tmp = pDataArray[i];pDataArray[i] = pDataArray[pAboutInsert];pDataArray[pAboutInsert] = tmp;}}}public void printArray(String pTag, int[] pDataArray){for(int i = 0; i < pDataArray.length; i++){DataSource.logs(pTag + " i = " + i  + " value = " + pDataArray[i]);}}public void printString(String pTag){DataSource.logs(pTag);}}

主要的思想是依次對(1,2),(1,2,3)---,(1,2,3,---,n)相進行從小到大排序,演算法的複雜度是n*n(1+2+3+---+n),有不合適的地方多多指教,謝拉~~

javaeye地址:http://junbianli.iteye.com/blog/1815573

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.