|
二分插入排序Binary Insert Sort 概念: 二分(折半)插入排序是一種在直接插入排序算法上進行小改動的排序算法。其與直接排序算法最大的區(qū)別在于查找插入位置時使用的是二分查找的方式,在速度上有一定提升。 原理: 總共有N個元素,當插入第i個元素時,對前面的0~i-1個元素進行折半,先跟他們中間的那個元素比,如果小,那么再對前半折半,否則對后半進行折半,知道左右,然后再把第i個元素前一位于目標位置之間的所有元素后移,再把第i個元素放在目標位置上。 關說原理可能大家不是很理解,下面我們就用一個列子來詳細說明一下: 例如:我們當前數組為[4 5 7 10 29 11] 已知當前0到第N-1個都是按順序排序,現(xiàn)在對第N個11找對應位置。 第一趟
11比中間M大 那么接下來第二趟為:
11比中間M大 那么11的位置就在M+1這個 注意,我們這里的第0到第N-1已經是按照要求排好序的 代碼:
|
|
|
來自: 昵稱63557093 > 《待分類》