您好,登錄后才能下訂單哦!
Java中怎么實現一個折半插入排序算法 ,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
折半插入排序方法的思想是,先以第一個數為基準,作為一個有序的數列,依次把它后面的數字以折半的方式插入這個有序的數列。
如下圖所示:
數組的前五位已經排好,現在要將1排序。
Java具體實現代碼:
輸入:數據元素數組r,數組r 的待排序區間[low..high]
輸出:數組r 以關鍵字有序
代碼:
public void binInsertSort(Object[] r, int low, int high){for (int i=low+1; i<=high; i++){ Object temp = r[i]; //保存待插入元素int hi = i-1; int lo = low; //設置初始區間while (lo<=hi){ //折半確定插入位置int mid = (lo+hi)/2;if(strategy.compare(temp,r[mid])<0) hi = mid - 1;else lo = mid + 1; }for (int j=i-1;j>hi;j--) r[j+1] = r[j]; //移動元素r[hi+1] = temp; //插入元素}//for}
看完上述內容,你們掌握Java中怎么實現一個折半插入排序算法 的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。