java實(shí)現(xiàn)折半排序算法
折半插入排序(binary insertion sort)是對(duì)插入排序算法的一種改進(jìn),由于排序算法過(guò)程中,就是不斷的依次將元素插入前面已排好序的序列中。由于前半部分為已排好序的數(shù)列,這樣我們不用按順序依次尋找插入點(diǎn),可以采用折半查找的方法來(lái)加快尋找插入點(diǎn)的速度。
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;
}
}
折半排序算法示意圖:

以上所述就是本文的全部?jī)?nèi)容了,希望能夠?qū)Υ蠹覍W(xué)習(xí)java折半排序算法有所幫助。
相關(guān)文章
Java學(xué)習(xí)關(guān)于循環(huán)和數(shù)組練習(xí)題整理
在本篇文章里小編給各位整理了關(guān)于Java學(xué)習(xí)關(guān)于循環(huán)和數(shù)組練習(xí)題相關(guān)內(nèi)容,有興趣的朋友們跟著參考學(xué)習(xí)下。2019-07-07
IDEA+JRebel實(shí)現(xiàn)全自動(dòng)熱部署的方法步驟
這篇文章主要介紹了IDEA+JRebel實(shí)現(xiàn)全自動(dòng)熱部署的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java調(diào)用高德地圖API根據(jù)詳細(xì)地址獲取經(jīng)緯度詳細(xì)教程
寫(xiě)了一個(gè)經(jīng)緯度相關(guān)的工具,分享給有需求的小伙伴們,下面這篇文章主要給大家介紹了關(guān)于Java調(diào)用高德地圖API根據(jù)詳細(xì)地址獲取經(jīng)緯度,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
Spring MVC Annotation驗(yàn)證的方法
這篇文章主要介紹了Spring MVC Annotation驗(yàn)證的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
Spring中@Transactional(rollbackFor=Exception.class)屬性用法介紹
這篇文章介紹了Spring中@Transactional(rollbackFor=Exception.class)屬性的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
java 直接調(diào)用python腳本,并傳遞參數(shù)代碼實(shí)例
這篇文章主要介紹了java調(diào)用python腳本傳遞參數(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

