Java實現(xiàn)插入排序的示例代碼和運(yùn)行結(jié)果
插入排序是一種簡單且常用的排序算法,在實際應(yīng)用中有著廣泛的應(yīng)用。本文將介紹如何使用Java語言實現(xiàn)插入排序,并給出相應(yīng)的代碼示例和運(yùn)行結(jié)果。
插入排序的基本思想是將待排序的數(shù)組分為已排序和未排序兩部分,初始時已排序部分只有一個元素,然后依次將未排序部分的元素插入到已排序部分的合適位置,直到全部元素都插入完成。
下面是Java實現(xiàn)插入排序的示例代碼:
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
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
方法實現(xiàn)了插入排序算法。它使用一個外層循環(huán)遍歷未排序部分的每個元素,將元素插入到已排序部分的合適位置。內(nèi)層循環(huán)則是在已排序部分中尋找合適的插入位置,將比當(dāng)前元素大的元素往后移動。
在main
方法中,我們定義了一個整型數(shù)組arr
,初始化了一組無序的元素。首先輸出了排序前的數(shù)組,然后調(diào)用insertionSort
方法進(jìn)行排序,最后輸出排序后的數(shù)組。
運(yùn)行結(jié)果如下所示:
排序前: 5 2 10 8 3 排序后: 2 3 5 8 10
可以看到,經(jīng)過插入排序算法處理后,原先無序的數(shù)組已經(jīng)成功地按照從小到大的順序進(jìn)行了排序。
插入排序的時間復(fù)雜度為O(n^2),在處理小規(guī)模的數(shù)據(jù)集時性能較好。然而,對于大規(guī)模數(shù)據(jù)集,插入排序的性能會顯著下降,不如其他高效的排序算法。因此,在實際開發(fā)中,需要根據(jù)具體情況選擇適合的排序算法。
以上就是Java編寫插入排序算法并輸出結(jié)果的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
java怎么學(xué)習(xí)?java怎么入門?java在哪學(xué)?java怎么學(xué)才快?不用擔(dān)心,這里為大家提供了java速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號