//冒泡
//冒泡是後半段有序
void
bubble0316
(vector<
int>
& arr)}}
}//插入排序
//前面部分有序
void
insert0316
(vector<
int>
&arr)
arr[j+1]
= temp;}}
//歸併
//將陣列分解成一系列有序陣列後合併,使用乙個臨時陣列儲存兩個有序陣列的合併
//合併時要輸入中間位置索引方便分開兩個有序序列
void
merge0316
(vector<
int>
&arr,
int start,
int mid,
int end, vector<
int>
&temp)
else
}while
(istart <= iend)
while
(jstart <= jend)
for(
int i =
0; i < temp.
size()
; i++
) temp.
clear()
;}void
mergesort0316
(vector<
int>
&arr,
int start,
int end, vector<
int>
&temp)
vector<
int>v =
; vector<
int>temp;
int n = v.
size()
; cout <<
"排序前"
<< endl;
for(
auto ch : v)
cout << endl;
//bubble0316(v);
//insert0316(v);
mergesort0316
(v,0
, n-
1, temp)
;//end是最後位置的索引,不是陣列大小
cout <<
"排序後"
<< endl;
for(
auto ch : v)
cout << endl;
system
("pause");
return
0;
python 實現插入排序 氣泡排序 歸併排序
def insertsort a 插入排序演算法 傳入乙個陣列,對陣列進行排序 print 排序前的順序 a length len a for i in range 1,length 從第二個開始 key a i j i 1 while j 0 and a j key a j 1 a j j j 1...
冒泡 插入 選擇 歸併排序
演算法原理 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若檔案的初始狀態是正序...
穩定排序(插入排序 氣泡排序 歸併排序)
插入排序 我們可以從字面意思去理解這個排序方式,可以把序列前後分為兩部分有序序列和待排序列,不斷的在待排序列中取出乙個數按某規則 從大到小或者從小到大 插入到有序序列中,直到待排序列都完成排序結束。演示 視覺化演算法 推薦 ps 本圖出處為此 c語言 實現 void insert sort int ...