內部排序演算法之五 二分插入演算法

2021-07-25 10:36:28 字數 931 閱讀 9244

1.1. 基本描述

元素個數為n的陣列,需要按照由小到大的順序進行元素排序。

1.2. 演算法分析

二分插入排序的基本思想:將陣列看成已排序與未排序兩個部分,依次將未排序的元素插入到已排序部分的合適位置,插入新元素需要將插入位置之後的元素依次後移

。作為直接插入排序演算法的優化,在需排序元素個數n較大時,二分插入排序需比較的次數比直接插入排序的最好情況要差,但比直接插入排序的最壞情況要好。

最好情況下,時間複雜度為o(nlogn);最壞情況下,時間複雜度為o(n^2);平均時間複雜度為o(n^2)。是

穩定排序。

public class binaryinserctionsort ;

// integer unsortedarr = new integer;

// integer unsortedarr = new integer;

int beginindex = 1; // 起始位置預設為1,約定如果只有乙個元素,就不用進行排序了

while (beginindex < unsortedarr.length) else

}int tempelement = unsortedarr[beginindex];

for (int i = beginindex; i > insertindex; i--)

unsortedarr[insertindex] = tempelement;

beginindex ++;

} stringbuffer stringbuffer = new stringbuffer();

for (int k = 0; k < unsortedarr.length; k++)

system.out.println(stringbuffer.tostring());

}}

常見排序演算法之二分插入排序演算法

1.演算法思路 是在插入第i個元素時 i前面的元素必定是有序的 對前面的0 i 1元素進行折半,先跟他們中間的那個元素比,如果小,則對前半再進行折半,否則對後半進行折半,直到left right,然後再把第i個元素前1位與目標位置之間的所有元素後移,再把第i個元素放在目標位置上。2.特點分析 二分法...

C 插入演算法及二分插入演算法

一 直接插入演算法 1 思路 對於乙個給定的有n個元素的序列,1.我們從第一元素 i 1 開始作為乙個關鍵字,此關鍵字左邊的元素為已經排好序,2.把關鍵字插入到左邊排好序的序列中,方法為 把關鍵字其左邊的序列的每個元素從左到右逐個比較,當序列中的元素比關鍵字大時向後移動乙個位置,直到找到比關鍵字小的...

排序演算法 二分插入排序(折半排序)演算法原理

對於插入排序,如果比較操作的代價比交換操作大的話,可以採用二分查詢法來減少比較操作的次數,我們稱為二分插入排序 在直接插入排序的基礎上,利用二分 折半 查詢演算法決策出當前元素所要插入的位置。1.找到中間元素,如果中間元素比當前元素大,則當前元素要插入到中間元素的左側 2.否則,中間元素比當前元素小...