Java實作插入排序的範例程式碼和執行結果
插入排序是一種簡單且常用的排序演算法,在實際應用中有著廣泛的應用。本文將介紹如何使用Java語言實作插入排序,並給出對應的程式碼範例和執行結果。
插入排序的基本思想是將待排序的陣列分成已排序和未排序兩部分,初始時已排序部分只有一個元素,然後依次將未排序部分的元素插入到已排序部分的合適位置,直到全部元素插入完成。
下面是Java實作插入排序的範例程式碼:
public class InsertionSort { public static void insertionSort(int[] arr) { int n = arr.length; for (int i = 1; i < n; i++) { int key = arr[i]; int j = i - 1; while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j -= 1; } arr[j + 1] = key; } } public static void main(String[] args) { int[] arr = {5, 2, 10, 8, 3}; System.out.println("排序前:"); printArray(arr); insertionSort(arr); System.out.println("排序后:"); printArray(arr); } public static void printArray(int[] arr) { int n = arr.length; for (int i = 0; i < n; i++) { System.out.print(arr[i] + " "); } System.out.println(); } }
程式碼中的insertionSort
方法實作了插入排序演算法。它使用一個外層循環遍歷未排序部分的每個元素,將元素插入到已排序部分的合適位置。內層循環則是在已排序部分中尋找合適的插入位置,將比目前元素大的元素往後移動。
在main
方法中,我們定義了一個整數陣列arr
#,初始化了一組無序的元素。首先輸出了排序前的數組,然後呼叫insertionSort
方法進行排序,最後輸出排序後的陣列。
運行結果如下所示:
排序前: 5 2 10 8 3 排序后: 2 3 5 8 10
可以看到,經過插入排序演算法處理後,原先無序的陣列已經成功地按照從小到大的順序進行了排序。
插入排序的時間複雜度為O(n^2),處理小規模的資料集時表現較好。然而,對於大規模資料集,插入排序的效能會顯著下降,不如其他高效的排序演算法。因此,在實際開發中,需要根據具體情況選擇適合的排序演算法。
以上是Java編寫插入排序演算法並輸出結果的詳細內容。更多資訊請關注PHP中文網其他相關文章!