java實現(xiàn)折半排序算法
折半插入排序(binary insertion sort)是對插入排序算法的一種改進(jìn),由于排序算法過程中,就是不斷的依次將元素插入前面已排好序的序列中。由于前半部分為已排好序的數(shù)列,這樣我們不用按順序依次尋找插入點,可以采用折半查找的方法來加快尋找插入點的速度。
public static void halfSort(int[] array) { int low, high, mid; int tmp, j; for (int i = 1; i < array.length; i++) { tmp = array[i]; low = 0; high = i - 1; while (low <= high) { mid = low + (high - low) / 2; if (array[mid] > tmp) high = mid - 1; else low = mid + 1; } for (j = i - 1; j > high; j--) { array[j + 1] = array[j]; } array[high + 1] = tmp; } }
折半排序算法示意圖:
以上所述就是本文的全部內(nèi)容了,希望能夠?qū)Υ蠹覍W(xué)習(xí)java折半排序算法有所幫助。
相關(guān)文章
IntelliJ IDEA遠(yuǎn)程Debug Linux的Java程序,找問題不要只會看日志了(推薦)
這篇文章主要介紹了IntelliJ IDEA遠(yuǎn)程Debug Linux的Java程序,找問題不要只會看日志了,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09EL表達(dá)式簡介_動力節(jié)點Java學(xué)院整理
EL全名為Expression Language,這篇文章主要給大家介紹EL表達(dá)式的主要作用及內(nèi)容簡介,感興趣的朋友一起看看2017-07-07Spring boot整合shiro+jwt實現(xiàn)前后端分離
這篇文章主要為大家詳細(xì)介紹了Spring boot整合shiro+jwt實現(xiàn)前后端分離,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-12-12