插入排序(Insertsort)之Java實現__Java

來源:互聯網
上載者:User

目錄(?)[+] 插入排序演算法介紹

排序演算法是最簡單的演算法,也是最基本的演算法。顧名思義,插入排序就是把當前待排序的元素插入到一個已經排好序的列表裡面。 一個非常形象的例子就是右手抓取一張撲克牌,並把它插入左手拿著的排好序的撲克裡面。插入排序的最壞已耗用時間是O(n2), 所以並不是最優的排序演算法。特點是簡單,不需要額外的儲存空間,在元素少的時候工作得好。 插入排序演算法Java實現

Java裡面有很多資料類型,我們選取的是最簡單的整數,但這並不失一般性。即使是自己定製化的對象,實現了java.lang.Comparable, 把對應的 大於符號(>)以及小於符號(<)換成compareTo即可。

由於需要頻繁的操作以及列印數組,先寫一個小的數組工具類。代碼如下: [java] view plain copy public class ArrayUtils {              public static void printArray(int[] array) {           System.out.print("{");           for (int i = 0; i < array.length; i++) {               System.out.print(array[i]);               if (i < array.length - 1) {                   System.out.print(", ");               }           }           System.out.println("}");       }   }  

從數組的第二個元素開始,取得當前待處理的元素,插入到當前元素之前的子數組裡面,直到數組的末尾。插入排序的Java實現以及測試代碼如下: [java] view plain copy public class InsertSortTest {       public static void insertSort(int[] array) {           if (array == null || array.length < 2) {               return;           }              for (int i = 1; i < array.length; i++) {               int currentValue = array[i];               int position = i;               for (int j = i - 1; j >= 0; j--) {                   if (array[j] > currentValue) {                       array[j + 1] = array[j];                       position -= 1;                   } else {                       break;                   }               }                  array[position] = currentValue;           }       }          public static void main(String[] args) {           int[] array = { 3, -1, 0, -8, 2, 1 };           ArrayUtils.printArray(array);           insertSort(array);           ArrayUtils.printArray(array);       }   } 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.