1
A
回答
1
快速排序功能通過獲取一個數據透視值,並將其餘數據分爲兩組。一個更高,一個更低。然後,您會依次對每個組執行此操作,直到獲得不超過一個的組爲止。此時,您可以保證數據的排序,因爲您可以保證任何樞軸值都位於正確的位置,因爲您已直接將其與另一個樞軸值進行比較,該值也位於正確的位置。最後,剩下的大小爲1或大小爲0的集合無法排序,因爲它們無法重新排列,因此已經排序。
希望這會有所幫助,這正是我們爲A Level高等數學(英國16-18)所教授的內容。
1
你的教授可能指的是「穩定性」。看看這裏:http://en.wikipedia.org/wiki/Stable_sort#Stability。穩定的排序算法用相同的密鑰維護記錄的相對順序。如果所有的鍵都不同,那麼這個區別就沒有必要了。
快速排序(在高效實現中)不是一個穩定的排序,因此確保穩定性的一種方法是確保數組中沒有重複的整數。
3
無償剽竊Wikipedia:
分區算法的正確性是基於以下 兩個參數:
- 在每次迭代中,所有迄今 處於期望的處理的元件位置:在樞軸之前如果小於主軸的 的值,則在樞軸之後如果大於主軸的值(循環 不變)。
- 每次迭代只剩下一個要處理的元素 (循環變體)。
整體算法的正確性可通過感應來證明 :零個或一個元件,該算法離開數據 不變;對於較大的數據集,它會生成兩個部分的連接,元素小於主鍵和大於它的元素, 自己按遞歸假設排序。
相關問題
- 1. c將整型數組排序
- 2. 如何保持數組的排序
- 3. 如何使用現有的整數排序對整數元組進行排序?
- 4. 如何排序整數
- 5. PHP - 如何通過其數組值排序整個數組?
- 6. Quicksort沒有排序長度爲2的數組
- 7. 循環前的數組排序不保留數組排序
- 8. 排序在C#多維[,]數組,整數
- 9. 排序多維數組的整數值
- 10. 用Javascript排序多維數組:整數
- 11. 排序整數數組在Java
- 12. GLIb數組排序,如何排序?
- 13. 如何檢查一個整數數組是否被排序?
- 14. 如何在Python中就地對整數數組進行排序?
- 15. 如何對可可中的整數數組進行排序?
- 16. 如何在Swift中將特定的整數放入排序數組的中間?
- 17. 排序由數組和保持秩序
- 18. 將NSNumbers數組重新排序並轉換爲整數
- 19. quickSort修改插入排序
- 20. 如何將整數從.txt文件保存到數組中?
- 21. 如何將一串數字轉換爲已排序的整數?
- 22. 基於索引數組排序整數數組?
- 23. 整理排序後的數組
- 24. ctypevalidator整數驗證數組
- 25. KornShell整數排序
- 26. 如何在JavaScript中將平面數組排序爲[鍵,數組]數組?
- 27. 如何排序正或負整數
- 28. 排序數組排序
- 29. MongoDB的:保持排序後的數組
- 30. 保存在PHP中排序的數組
你的意思是「如何證明quicksort工作?」? – 2012-02-27 21:38:05
檢查不變量是否保持 – 2012-02-27 21:38:48
這是什麼意思?你的意思是「爲什麼快速排序工作正常」,或者「你需要做些什麼改變才能確保你總是正確排列整數?」 – templatetypedef 2012-02-27 21:39:53