9 現在我們需要比較列表中的第四個點——最後一個元素——是否優於列表中的任何其他點。在這種情況下,9 大於它之前的所有元素:8、6 和 3。 這是我們用來對列表進行排序的算法: - 第一個元素已排序。
- 將第二個元素與其左側的元素進行比較。
- 如果此元素大於其左側的值,則該元素保留在同一位置。否則,將值向左移動。
- 重複直到所有項目按順序出現。
我們現在有一個排序數組。插入類型一次按一項排序。讓我們看看如何在 Java 中實現這個排序算法 如何執行在 Java 中插入排序每次執行排序函數時,被比較的兩個值中的較高者會向右插入一個位置。 理論上講沒問題,但它是如何在 Java 中實現的?這是一個很好的問題。讓我們編寫一個類,它會通過插入學生成績列表來排序。 準備數組庫 讓我們開始吧通過將數組庫導入到我們的 Java 程序中。一旦我們對它進行排序,我們將使用這個庫將我們的列表打印到控制台: decla重新排序方法 我們將首先聲明一個方法,該方法遍歷我們的列表並按升序對我們的數據進行排序: 讓我們從找出輸入數組中有多少元素開始。這允許我們創建一個遍歷列表中每個項目的循環。我們初始化一個循環,直到我們退出列表。 在我們的循環中,我們聲明了兩個變量:鍵和最後一個。 Java a> 變量“key”跟踪我們當前訂購的元素。 “last”變量跟踪應該在項目左側排序的項目數。我們的程序會將“key”的值與其左側的每個元素進行比較,直到找到較小的元素.這發生在我們的 Java "while" 循環中。 定義一個主函數 當我們運行它時代碼,沒有任何反應。事實上,我們還沒有定義我們的主要功能。我們定義了一個 main 函數,它定義了一個 int 網絡(一個數字數組)。這個主函數使用我們聲明的 insertSort () 函數對這些數字進行排序。在聲明你的 entrySort Java 方法 後粘貼這段代碼: 在我們的 main 方法中,我們已經聲明了一個我們想要排序的數字列表。我們實例化了名為 sortNumbers 的 InsertionSort () 方法。我們使用這種方法按升序對數字列表進行排序。這個方法改變了我們的“數字”向量中的值“Äã”;我們沒有聲明一個單獨的數組來存儲它的值。 接下來,我們用 Arrays.toString () 方法將我們的數字數組轉換為字符串。< h2> 考試複雜度插入排序的平均案例複雜度為 O ( n ^ 2)。當沒有項目被排序時會發生這種情況。 如果對數組進行排序,則會出現最佳情況復雜度。這會產生 O (n) 的時間複雜度。實際上,某種類型的內部循環在這種情況下根本不會執行插入操作。 在最壞的情況下,插入是在 O ,Äã,Äãsort (n ^ 2) 進行的。如果數組按升序或降序排列,則會發生這種情況並且您想以相反的順序排序(即從升序到降序)。每個元素與所有其他元素的衝突 結論插入類型是一種有效的數據排序方式。 orts 比較列表中從第二個開始的值。如果這個值大於它左邊的值,我們的列表不會改變。否則,該值將移動,直到其左側的元素變少。 您現在可以開始用 Java 編寫自己的插入排序算法了!如果您正在尋找更多 Java 學習資源,請查看我們的Java 學習指南. |