用分治演算法來求乙個陣列的排序
分治演算法:例如:將兩個陣列a[100]=。這個陣列排序
先將這個陣列分為均兩部分得到,。
再將分為兩部分,。
再分為,。
這時乙個數就不用排序了,直接輸出自己。
簡單問題,就可以用二分或者三分來算。
上**:
#include using這個**的執行時間要比sort函式用的時間短。namespace
std;
void hebing(int a,int b,int mid,int
c)
else
}while(i<=mid)
while(j<=c)
for(int i=b,u=0;i<=c;i++,u++)
delete k;
} // 這個hebing函式的具體**。
void paixu(int a,int b,int
c) //b表示起始位置,c表示終止位置。
intmain()
paixu(a,
0,n-1
);
for(int i=0;i)
cout
return0;
}
合併兩個有序陣列
例如 陣列a1 陣列a2 則合併為a3 思路 依次掃瞄a1和a2的元素 比較當前元素的值,將較小的元素賦給a3,直到乙個陣列掃瞄完畢,然後將另乙個陣列的剩餘元素賦給a3即可。陣列a3的容量需要容納a1和a2兩個陣列和長度和。實現 include include void merge int a1,i...
合併兩個有序陣列
給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。說明 示例 輸入 nums1 1,2,3,0,0,0 m 3 nums2 2,5,6 n 3 輸出 1,2,2,3,5,6 class solution def merge s...
合併兩個有序陣列
題目描述 給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n。你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums2 中的元素...