电竞比分网-中国电竞赛事及体育赛事平台

分享

Java排序算法詳解—— 二分插入排序

 昵稱63557093 2020-03-10

  二分插入排序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已經是按照要求排好序的

  代碼:

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多