歸併排序 C 二分法插入資料

2021-10-21 11:24:39 字數 881 閱讀 7544

#include

#include

#include

#include

void

compare

(std::vector<

int>

& vec,

int b,

int start,

int end)

;int

main()

;compare

(sorted,29,

0, sorted.

size()

);for(

int i =

0; i < sorted.

size()

; i++

)return0;

}/** 函式引數意義:

* vec:存放資料(資料必須是有序的,且不能為空,為空的情況需要修改**)

* b:要插入的資料

* start:資料起始位置

* end:資料總長度(這點要注意,它不是下標,想要取下標需要減一)

*/void

compare

(std::vector<

int>

& vec,

int b,

int start,

int end)

//當要插入的資料小於中間值並且起始下標小於終點下標

if(b < vec[mid-1]

&&(start <

(end-1)

))//同上

else

if(b > vec[mid-1]

&&(start <

(end-1)

))else

else

}}

歸併排序及二分法

什麼叫做歸併排序?歸併排序指的是利用 歸併 技術來進行排序。歸併是指將若干個已排序的子檔案合併成乙個有序的檔案。如下圖所示 歸併排序演算法主要分成兩部,一步是 分 另一步是 並 正如上圖所表示的一樣。分指的是從序列中進行二等分,以此分下去,直到序列長度為0或1為止。分 對應的基本問題就是二分法 並指...

二分法插入排序

二分法插入排序 演算法思想簡單描述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,如果小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的所有元素後移,再把第i個元素放在目標位置上。二分法沒有排序,只有查...

二分法插入排序

二分法插入排序 演算法思想簡單描寫敘述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,假設小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的全部元素後移,再把第i個元素放在目標位置上。二分法沒有排序,僅...