簡體   English   中英

這里使用哪種排序算法

[英]Which sorting algorithm used here

在在線活動中,我必須完成部分完成的代碼。 他們使用鏈接列表數據結構存儲每個元素。時間復雜度為O(n * n),並且在外部(for)循環中,當node-> next!= NULL(即僅進行n-1個檢查)時,迭代完成。 內(for)循環,有n次檢查,直到(ptr變為NULL)

例如,有5個元素。 並且,按給定順序的元素5-> 3-> 1-> 2-> 4-> NULL

排序周期:

1-> 3-> 5-> 2-> 4-> NULL

1-> 2-> 5-> 3-> 4-> NULL

1-> 2-> 3-> 5-> 4-> NULL

1-> 2-> 3-> 4-> 5-> NULL

元素按排序順序

1-> 2-> 3-> 4-> 5-> NULL

這里使用哪種排序算法?

這是選擇排序的一個實例。 請注意,在迭代i之后,列表的前i個元素現在按排序順序,並且移到第i個位置的元素與以前在那里的元素交換。 例如,這是從第一次迭代到第二次迭代的變化:

5 ->3 ->1 ->2 ->4 ->NULL
1 ->3 ->5 ->2 ->4 ->NULL

請注意,1(最小的元素)已交換到最前面,但其余元素的順序相同。 同樣,在第二次和第三次迭代之間,您將看到:

1 ->3 ->5 ->2 ->4 ->NULL
1 ->2 ->5 ->3 ->4 ->NULL

在這里,第二個最小的元素2交換到第二個位置,但是其余元素的順序相同。

我不確定為什么他們選擇在這里使用選擇排序。 更好的方法可以對鏈表進行排序

希望這可以幫助!

看起來像選擇排序,首先是最小的排序,然后是其余的最小排序,然后將結果放在第一個之后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM