詳解Java實作的插入排序演算法
Java插入排序演算法的實作方法詳解
插入排序是一種簡單直覺的排序演算法,它的原理是將待排序的數列分成已排序和未排序兩部分,每次從未排序中取出一個元素,插入到已排序的合適位置。插入排序演算法的實作方法相對簡單,以下將詳細介紹其具體實作方法,並給出對應的程式碼範例。
- 演算法想法
假設要對一個整數數組arr進行升序排序,初始時將arr[0]視為已排序的部分,其餘元素視為未排序的部分。以此為基礎,若目前待插入的元素為arr[i](i從1開始),則從已排序的部分arr[0:i-1]中找到arr[i]應該插入的位置j,將arr[i]插入到位置j,同時將arr[j:i-1]的所有元素依序向後移動一個位置。 - 程式碼實作
以下給出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; // 将已排序的元素依次向后移动,直到找到arr[i]应该插入的位置 while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j = j - 1; } arr[j + 1] = key; } } public static void main(String[] args) { int[] arr = {5, 2, 8, 3, 1}; insertionSort(arr); System.out.println("排序后的数组:"); for (int num : arr) { System.out.print(num + " "); } } }
- 演算法分析
插入排序演算法的時間複雜度為O(n^2),其中n為待排序的元素個數。在最好的情況下,即待排序數組已經有序,插入排序的時間複雜度為O(n)。在最壞的情況下,待排序數組逆序,插入排序的時間複雜度為O(n^2)。插入排序是一種穩定的排序演算法,因為相等元素的相對位置在排序前後不會改變。
綜上所述,本文詳細介紹了Java插入排序演算法的實作方法,並給出了對應的程式碼範例。插入排序是一種簡單直覺的排序演算法,適用於小規模的陣列或基本上有序的陣列。在實際應用中,可以透過其他更有效率的排序演算法來替代插入排序,但理解插入排序的原理和實作方法對於學習其他排序演算法是非常有益的。
以上是詳解Java實作的插入排序演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

膠囊是一種三維幾何圖形,由一個圓柱體和兩端各一個半球體組成。膠囊的體積可以通過將圓柱體的體積和兩端半球體的體積相加來計算。本教程將討論如何使用不同的方法在Java中計算給定膠囊的體積。 膠囊體積公式 膠囊體積的公式如下: 膠囊體積 = 圓柱體體積 兩個半球體體積 其中, r: 半球體的半徑。 h: 圓柱體的高度(不包括半球體)。 例子 1 輸入 半徑 = 5 單位 高度 = 10 單位 輸出 體積 = 1570.8 立方單位 解釋 使用公式計算體積: 體積 = π × r2 × h (4
