學習影片分享:java影片教學
#普通插入:從陣列的第二個元素進行操作,當發現其前面的元素比他大時,執行交換操作。
static int[] insertSort(int[] array){ int len = array.length; for (int begin = 1; begin 0 && array[cur] <p><strong>第一步優化:從數組的第二個元素進行操作,如果發現其前面的元素比他大,就將其前面的元素往後挪,直到cur指向的元素大於或等於他前一個元素,此時cur指向的位置就是待插入元素應該插入的位置。 </strong><br></p><pre class="brush:php;toolbar:false"> static int[] insertSort2(int[] array){ int len = array.length; for (int begin = 1; begin 0 && array[cur] <p><strong>第二步優化</strong><br></p><p><strong>#第三種演算法和第二種其實本質上是一樣的,都是找待插入位置,挪動元素,只不過第三種演算法透過二分查找減少了比較次數,即cmp函數的調用,也減少了swap函數的調用。更快的找到了當前元素應該插入的位置,然後再進行挪動,提高了效率。 </strong></p><pre class="brush:php;toolbar:false">static int[] insertSort3(int[] array){ int len = array.length; for (int begin = 1; begin insertIndex; i--){ array[i] = array[i-1]; } array[insertIndex] = v; } return array; } static int search(int[] array, int index){ int begin = 0; int end = index; while(begin > 1; if (array[index] <p><strong>要注意的是:使用了二分搜尋後,只是減少了比較次數,但插入排序的平均時間複雜度依然是O(n^2)</strong><br></p><p><strong>將其中的挪動操作分開的效果:</strong></p><pre class="brush:php;toolbar:false"> package com.mj.sort.cmp;import com.mj.sort.Sort;public class InsertionSort3<t>> extends Sort<t> { // protected void sort() {// for (int begin = 1; begin = insertIndex; i--) { }// for (int i = begin; i > insertIndex; i--) {// array[i] = array[i - 1];// }// array[insertIndex] = v;// }// } @Override protected void sort() { for (int begin = 1; begin dest; i--) { array[i] = array[i - 1]; } array[dest] = v; } /** * 利用二分搜索找到 index 位置元素的待插入位置 * 已经排好序数组的区间范围是 [0, index) * @param index * @return */ private int search(int index) { int begin = 0; int end = index; while (begin > 1; if (cmp(array[index], array[mid]) <p>相關推薦:<a href="https://www.php.cn/java/guide/" target="_blank">java入門教學</a></p>#</t></t>
以上是java實作插入排序後怎麼進一步優化的詳細內容。更多資訊請關注PHP中文網其他相關文章!
陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前ByDDD
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。