選擇排序 Javascript

| | | | | | | |

Java 排序選擇在列表中找到最小的項目並將該值移動到列表的頂部。這種情況反復發生,直到第一個列表中的所有項目都已排序。排序列表的選擇返回的排序。

你是如何在 Java 中對列表進行排序的?你有幾個選擇。一個常見的選項是按選擇排序。

在本指南中,我們將討論什麼是排序排序以及它是如何工作的。我們還將向您展示如何在 Java 中創建某種選擇,以便您知道如何創建自己的選擇。讓我們開始吧!

什麼樣的 Java 選擇?

排序選擇重複地找到列表中的最小項並將其移動到列表中未排序項的開頭。對列表中的每個項目重複此過程,直到對列表進行排序。

列表中的第一個元素被認為是最小的元素。該項目與下一個項目進行比較。如果下一個元素更小,則交換元素。該算法找到最小元素,直到到達最後一個元素。然後我們的程序將最小的項目移到列表的頂部。

在某種選擇中,列表包含兩部分:。排序列表和未排序列表。當項目被排序時,它們從子表中移動到未排序的子表中。

您可以按升序或降序對列表進行排序。

使用 sort by 時應該選擇?

當您需要對小列表進行排序時,選擇類型是最佳選擇。事實上,有更有效的方法來對大型列表進行排序。 Java編程中的歸併排序、插入排序、快速排序等算法比選擇排序效率更高

一種選擇在以下情況下效果最好n 需要檢查所有數組元素。如果列表中的項目很少或沒有排序,就會出現這種情況。選擇排序通常取代排序氣泡,這樣更容易理解。

選擇類型如何工作?

在不知道是什麼的情況下嘗試在 Java 中實現算法是沒有意義的這是我們希望我們的算法做的。讓我們按照選擇的步驟開始,按順序對列表進行排序

考慮以下無序表:

17 14 9 12

選擇排序將第一項設置為列表中的最小項。每次我們的程序進行比較時都會更改的臨時值。這個值存儲在它自己的變量中。

minimum = 17


17 14 9 12

將“最小”元素與第二個元素進行比較,這個元素在網絡的無序部分; ..排序後的每一項都是未排序的

說第二項小於“item”m inimo“。在這種情況下,“minimum”元素的值被設置為該值的第二個元素。 14 小於 17,我們的新最小值變為 14。

minimum = 14


17 14 9 12

對每個項目重複這個過程在我們的清單中。 9 小於 14。所以“最小值”變為 9。9 不小於 12,所以最小值保持不變。

經過迭代,我們的列表顯示 9 是最小的數字。這個元素被移動到列表的頂部:

這個過程從第一個未排序的項目開始。所以我們接下來的一系列比較將從 17 開始:

  • 17 等於最小值
  • 我們的程序將 17 與 14 進行比較。“最小值”。變為 14。
  • 我們的程序將 14 與 12 進行比較。“最小值”的值變為 12。
  • 我們的程序在列表中已排序項目的末尾傳遞 12。
  • li>

我們的列表如下所示:

9 17 14 12
9 12 17 14

這個過程一直重複,直到我們的列表被排序。當我們的算法完成執行後,返回以下列表:

9 12 14 17

我們的列表是按升序排列的。

如何在 Java 中創建一種選擇

了解一種選擇的工作原理是一回事;這是另一種建築。使用演練中討論的邏輯在 Java 中留下選擇排序順序的代碼

設置啟動程序

創建一個名為 selection_sort.java 的文件。我們首先將 Java Arrays 庫 導入到我們的代碼中:

我們稍後會在代碼中使用這個庫。我們使用它來將排序後的範圍轉換為字符串,以便我們可以將其打印到控制台。

創建排序函數

接下來我們將聲明一個類並創建一個方法進行排序選擇 將以下內容添加到您的 selection_sort.java 文件中:.

在我們的類中,我們定義了一個名為 sortNumbers 的方法來進行我們的排序。讓我們從計算數組的長度開始。我們將數組的長度存儲在 Java 變量中。

接下來,我們創建一個 LUCRATIVE Java循環。這個循環遍歷我們列表中的每個項目。這個循環裡面是最小元素,也就是列表中的第一個元素

接下來,我們運行另一個循環,將最小元素與列表中的每個元素進行比較。

如果循環讀取的數字小於最小數字, “最小值”值變成那個數字。在我們的循環中,“數字”表示與最小值進行比較的數字的索引值。

一旦與最小值進行比較列表中的每個數字,我們的內部循環都會停止。然後將最小數字移到列表中所有已排序數字之後。

調用排序函數

我們的代碼什麼都不做.我們還沒有調用我們的類,給了一個列表來排序

在列表中的sortNumbers方法中,添加如下代碼:

在我們的 main 方法中,我們聲明了一個名為 toSort 的類型元素列表。然後我們初始化一個名為 newSort 的 SelectionSort 類的實例。我們使用它來調用我們的 sortNumbers 方法,該方法對 toSort 數組中的值 ‚Äã‚Äã 進行排序

方法 sortNumbers執行後,我們將排序後的數組打印到控制台。我們使用 Arrays.toString () 方法來執行此操作,該方法將我們的數組轉換為字符串列表。

讓我們運行我們的代碼:

我們的列表已排序

選擇對 Java 進行排序:按降序對值進行排序

有趣的是,您可以對值進行排序。按降序執行此操作,請在您的 sortNumbers 方法中替換以下代碼行:

使用此代碼:

此代碼檢查“minimum”值是否大於循環的訪問權限。這意味著“最小值”值將反映列表中的最大值而不是最小值。

為避免混淆,如果您對列表進行排序,則應將“最小值”重命名為“最大值”降序。

你做到了。您已經在 Java 中使用按選擇算法排序來調整列表。

按 Java 選擇排序有多複雜?

在評估一個列表時,我們需要考慮三個時間複雜度算法。最好的情況,最壞的情況和平均的情況

排序選擇的最佳,平均和最壞情況的複雜度為O(n^2)。這意味著隨著列表中項目數量的增加,該算法將呈指數級增長。

您是否對算法的複雜性感到困惑?查看我們的Big O 表示法的兩部分系列。這是我們用來描述算法複雜性的符號。

結論

選擇排序是對數據列表進行排序的一種有效方式。它們通過從未排序列表中選擇最小的項目並將其移動到未排序列表的頂部來工作。這個過程一直重複,直到列表被排序。

你想成為一名 Java 開發人員嗎?查看我們的 Java 學習指南。在本指南中,您將找到關於最佳在線課程和學習資源的最佳學習技巧和建議。