Haskell程式按字典序(詞典順序)排序元素


在本教程中,我們將討論編寫一個程式,以便在Haskell程式語言中按字典序排序元素。Haskell是一種宣告式、強型別和函數語言程式設計語言。Haskell中的計算是數學函式。

字典序是指詞典順序或字元ASCII值的順序。

在本教程中,我們將看到兩種在Haskell中實現按字典序排序元素的程式的不同方法。

  • 使用內建函式sort按字典序排序元素的程式。

  • 使用自定義排序函式按字典序排序元素的程式。

演算法步驟

  • 宣告或輸入元素列表。

  • 實現程式以對元素進行排序。

  • 列印或顯示排序後的元素。

示例1

使用函式sort按字典序排序元素的程式

import Data.List main = do -- declaring and initializing the list elements let list=["wel","bel","jel","keen","roll"] -- invoking the sort function and printing the returned result print ("The sorted List in lexicographical order is:") print (sort list)

輸出

"The sorted List in lexicographical order is:"
["bel","jel","keen","roll","wel"]

在上面的程式中,我們從Data包中匯入了**List**模組,以便在列表上使用一些實用函式。我們宣告並初始化了一個包含一些字串值(“bel”、“jel”、“keen”、“roll”、“wel”)的列表。我們呼叫了帶有宣告列表引數的**sort**函式。sort是List模組中的一個函式,它接受一個列表作為引數並返回排序後的列表。最後,我們列印了返回的排序列表。

示例2

使用自定義排序函式按字典序排序元素的程式

-- function declaration for function insert insert :: [[Char]]->[Char]->[[Char]] -- function definition for function insert -- base case insert [] y = [y] insert (x:xs) y = if y < x then [y]++[x]++xs else [x]++(insert xs y) -- function declaration for function insert sort :: [[Char]]->[[Char]] -- function definition for function insert -- base case sort [] = [] sort (x:xs) = insert (sort xs) x main = do -- declaring and initializing the list elements let list=["wel","bel","jel","keen","roll"] -- print ("The sorted List in lexicographical order is:") print (sort list)

輸出

"The sorted List in lexicographical order is:"
["bel","jel","keen","roll","wel"]

在上面的程式中,

  • 我們聲明瞭一個**insert**函式,它接受一個字串陣列和一個字串作為輸入,並返回一個字串陣列。在其函式定義中,我們正在獲取兩個引數列表模式**(x:xs)**和一個字串y。我們正在將x(第一個引數中列表中的第一個字串)與y進行比較。如果y在字典序上小於x,我們將返回列表[y]++[x]++xs。其中“++”是連線兩個列表的運算子。如果y在字典序上大於x,我們將返回x與對函式本身的遞迴呼叫(帶有剩餘列表和y作為引數)連線的結果。

  • 即insert是一個實用函式,它將元素插入到排序列表中的正確位置。例如,對於此函式呼叫**insert [2,4,5] 3**,輸出為**[2,3,4,5]**。

  • 我們聲明瞭一個sort函式,它接受一個字串列表作為輸入並返回一個字串列表。

  • 在其函式定義中,我們呼叫了insert,其中第一個引數是對自身本身的遞迴呼叫(帶有剩餘列表作為引數),第二個引數是列表中的第一個元素。在基本情況下,當引數為空列表時,我們返回一個空列表。此函式使用插入排序技術對列表中的元素進行排序。

  • 在主函式中,我們宣告並初始化了一個包含一些字串值的列表。我們呼叫了帶有宣告列表的sort函式,最後列印了返回的排序列表。

結論

在本教程中,我們討論了在Haskell程式語言中實現一個程式以按字典序排序元素。

更新於:2022年11月24日

499次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告