[英]A* admissible heuristics on a array sorting
我正在嘗試解決此類問題的A *可允許啟發式-
我有一組數字。
我只可以交換兩個相鄰的號碼。
我需要解決它的最小交換次數。
誰能幫我找到一個可接受的啟發式方法來解決這個問題?
在此先感謝您的幫助。
一個很好的啟發式方法是計算數組中的反轉次數。
倒數是一對索引i,j,且i <j,從而A [i]> A [j](即,該對的順序不正確)。
有一個O(nlogn)方法可以通過mergesort計算反轉次數(有關某些方法的說明,請參見此處 )。
這是一個很好的啟發式方法,因為反轉的次數給出了到目標的精確距離。 總會有一種可能的方法,將反轉的數量減少1。執行這樣的操作將以最少的步數對數組進行排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.