簡體   English   中英

如何告訴快速排序算法它應該終止?

[英]How can I tell a quicksort algorithm that it should terminate?

好的,所以我剛剛開始在學校學習排序算法。 我想我非常了解快速排序的概念,因為我可以在一張紙上執行它。 但是,有了一張紙,我就知道什么時候該停下來,也就是對數組進行排序的時候。 但是,如果我一直檢查數組以查看它是否已排序,那就違背了快速排序的目的,(我認為)不是檢查它是否通過遞歸多次排序。 當數組按定義排序時,我是否必須繼續遞歸到數組中只剩下 1 個元素時,還是有其他方法可以終止它?

當數組按定義排序時,我是否必須繼續遞歸到數組中只剩下 1 個元素時,還是有其他方法可以終止它?

是的,這正是快速排序應該終止的方式。

您需要進行您提到的檢查這一事實並不意味着它效率低下。 這與selection sortsbubble sorts沒有什么不同,它們也必須檢查各種條件和交換元素。 這個想法是quicksort不需要進行盡可能多的檢查,因此速度更快。

為什么不放入足夠的打印報表來監控您正在做的事情並將其與您在紙上得出的結果進行比較。

暫無
暫無

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

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