JavaScript 中帶小數點的字串排序


在這個問題陳述中,我們的目標是藉助 Javascript 功能對帶小數點的字串進行排序。因此,為了完成此任務,我們將使用 Javascript 的 sort 和 map 方法。

理解問題陳述

問題陳述是在 Javascript 中編寫一個函式,透過該函式我們可以對給定的帶小數點的字串進行排序。例如,如果我們有一個像 [‘3.3’, ‘4.4’, ‘2.3’, ‘1.2’] 這樣的字串陣列,那麼我們的任務就是對給定的字串陣列進行排序。但是,為了對這些字串進行排序,我們首先需要將其轉換為數字。轉換後,我們將對其進行排序,如 [1.2, 2.3, 3.3, 4.4]。因此,我們對數字陣列進行了排序,但現在我們將再次將數字轉換為字串,如 [‘1.2’, ‘2.3’, ‘3.3’, ‘4.4’]。

給定問題的邏輯

為了解決上述給定的問題陳述,我們將建立一個函式來對帶小數點的字串陣列進行排序。因此,我們首先將給定的字串陣列轉換為數字陣列。在我們擁有數字陣列之後,我們將使用 sort 和比較函式對這些數字進行排序。然後我們得到一個排序後的數字陣列,然後再次將其轉換為字串陣列。

演算法

步驟 1 - 定義一個名為 sortStrings 的函式,該函式將字串作為輸入引數。

步驟 2 - 上述函式使用 parseFloat 方法將陣列中的每個字串轉換為數字。這將建立一個名為 numbers 的新陣列,該陣列包含與原始陣列相同的數字,但以浮點數形式。

步驟 3 - 使用 sort 方法,我們將 numbers 陣列按升序排序。

步驟 4 - 對映數字並再次轉換為字串格式。並顯示輸出。

演算法程式碼

//function to sort the array of strings
const sortStrings = (strings) => {
   const numbers = strings.map(parseFloat);
   numbers.sort((a, b) => a - b);
   const sortedStrings = numbers.map((number) => number.toString());
   return sortedStrings;
};
 
const strings = ['2.6', '1.3', '4', '1.5', '4.77', '3'];
const sortedStrings = sortStrings(strings);
console.log(sortedStrings);

複雜度

由於我們在上面的函式中使用了一些內建方法。因此,建立的函式的時間複雜度為 O(n log n),其中 n 是給定輸入陣列的大小。因為 sort 方法的平均時間複雜度為 O(n log n)。

結論

在 Javascript 中,我們以這種方式對帶小數點的字串陣列進行了排序。此演算法以簡單有效的方式進行排序。透過在對它們進行排序之前將字串轉換為數字。

更新於: 2023年5月18日

1K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告