国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

歸并排序

2019-11-08 03:16:49
字體:
來源:轉載
供稿:網友
/* *算法描述:1、把前一半排序            2、把后一半排序            3、把兩半歸并到一個新的有序數組,然后再拷貝到原數組,排序完成 */ #include <iostream> using namespace std; void Merge(int a[],int s,int m,int e,int tmp[]) {//將數據a的局部a[s,m]和a[m+1,e]合并到tmp,并保證tmp有序,然后再拷貝到a[s,e]     int pb = 0;     int p1 = s,p2 = m+1;     while(p1<= m && p2<= e)     {         if(a[p1] < a[p2])            tmp[pb++] = a[p1++];         else            tmp[pb++] = a[p2++];     }     while( p1 <= m)        tmp[pb++] = a[p1++];     while( p2 <= e)        tmp[pb++] = a[p2++];     for(int i=0 ;i<e-s+1 ;i++)        a[s+i] = tmp[i]; } void MergeSort(int a[],int s,int e,int tmp[])//把數組a從下標s到e的部分進行歸并排序,tmp是中轉數組 {     if(s < e)     {         int m = s +(e-s)/2;//m作為s和e的中點         MergeSort(a,s,m,tmp);//把前一半排序         MergeSort(a,m+1,e,tmp);//把后一半排序         Merge(a,s,m,e,tmp);//把兩半歸并到一個新的有序數組,然后再拷貝到原數組,排序完成     } } int a[10] = {25,96,65,48,51,24,12,39,91,24}; int b[10]; int main() {     int size = sizeof(a)/sizeof(int);     MergeSort(a,0,size-1,b);//進行歸并排序     for(int i= 0; i<size; ++i)     {         cout << a[i] << ",";     }     cout << endl;     return 0; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 社会| 突泉县| 石家庄市| 昂仁县| 招远市| 宁安市| 昌图县| 渝北区| 搜索| 出国| 大荔县| 长垣县| 天长市| 青海省| 阳泉市| 汶川县| 顺昌县| 壶关县| 手机| 天祝| 娄底市| 微山县| 铁力市| 建德市| 彭水| 乌鲁木齐县| 金塔县| 丹棱县| 札达县| 利津县| 金沙县| 山西省| 将乐县| 迭部县| 镇赉县| 渝北区| 嘉义县| 蒙城县| 全州县| 孝感市| 中牟县|