javascript嵌入代碼

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Java 插入排序評估列表中的每個項目。如果一個項目小於前一個項目,則排序交換項目。否則,項目保持在同一個位置,並在列表中比較這兩個項目。

計算機擅長對項目列表進行排序。通過使用循環,您可以搜索列表中的所有項目並更改它們的順序,直到它們以某種方式出現。

在編程中,存在對列表進行排序的標準方法。我們稱這些排序算法。排序算法讀取列表中的所有項目,並使用一組特定的語句對它們進行排序。您將遇到的最新排序算法之一是某種插入。

在本指南中,我們將討論如何實現 Java 插入排序算法。我們將在整個過程中通過一個示例來了解哪種類型的工作原理。

讓我們開始吧!

Java 插入輸出是什麼?

Java 插入類型的工作方式類似於在一副紙牌中對手中的紙牌進行分類。插入排序檢查列表中的每個項目並將它們與左側的項目交換。一個項目是否被交換取決於該項目是大於還是小於前一個項目。

想像一下,你正在玩紙牌遊戲——惠斯特、拉米紙牌等等。當您訂購卡片時,您會做什麼?

您將從左側開始檢查第二張卡片是否已排序。如果這張卡大於上一張,它必須保持在相同的位置。否則,它必須在列表中移動一位。

你會花掉你手上所有的牌,直到每張牌都以正確的順序出現。

什麼時候使用排序輸入?

有多個當只有少數左元素需要排序時使用的插入類型

< /a>

作為一種合併,您可以使用更有效的算法對數據列表進行排序。這就是為什麼您不應該總是默認使用插入排序。但是,對於列表的排序,集成類比氣泡類和位置選擇更有效。

插入是一種簡單的排序算法,這意味著它對初學者很有用。

p>

排序插入過程

查看一副紙牌並不是世界上最直觀的。首先,看一個編程示例。考慮以下列表:

8 6 3 9

在這個列表中,我們假設第一項已排序。

下一步是比較列表中的第二項和第一項。如果第一個元素大於第二個元素,則該元素放在第一個元素的前面。

在這種情況下,6 大於 8。這意味著 6 將返回我們列表中的位置而 8 會前進一個位置:

6 8 3 9

現在我們需要比較第三個元素和它左邊的元素:3大於8?不,所以 8 將位置向右移動:

6 3 8 9

3 大於 6?不,所以我們要移動數字 6:

3 6 < /td> 8 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 學習指南.