最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++歸并算法實例

 更新時間:2015年07月14日 11:13:08   作者:G0561  
這篇文章主要介紹了C++歸并算法,實例分析了C++實現(xiàn)基于歸并算法合并線性表的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C++歸并算法。分享給大家供大家參考。具體如下:

/* 
 歸并算法:把兩個或兩個以上的線性表合并在一起,形成一個新的線性表
 函數(shù)模版的基本使用
 程序意圖:將兩個相同類型的線性表元素排好序,然后將他們組合成一個排好的線性表 
*/
#include <iostream>
using namespace std;
const int n = 5; //5個元素 
//輸出數(shù)據(jù)元素
template <class T1>
void OutPut(T1 out[(2*n)])
{ 
  for (int i=0; i<(2*n); i++)
  { 
  cout<<out[i]<<" ";
  }
  cout<<endl;
} 
//輸入數(shù)據(jù)元素 
template <class T2>
void InPut(T2 in[n])
{
  cout<<"請輸入5個數(shù)據(jù)元素:";
  for (int i=0; i<n; i++)
  { 
  cin>>in[i];
  cout<<" "; 
  }
  cout<<endl;
}
//模版函數(shù) 輸入線性表元素并將其排序
template <class T3> 
void MySort(T3 a[2*n])
{
  int temp; //交換數(shù)據(jù)臨時變量 
  //冒泡錨序 
  for (int i=0; i<2*n-1; i++)
  {
   for (int j=0; j<2*n-1-i; j++)
   {
    if (a[j]>a[j+1]) 
    {
    temp = a[j];
    a[j] = a[j+1];
    a[j+1] = temp; 
    }
   }
  }
}
//模版函數(shù) 歸并 
template <class T> 
void MergeList(T La[n], T Lb[n], T Lc[(2*n)]) 
{
  int i = 0; //作為La的下標(biāo) 
  int j = 0; //Lb下標(biāo)
  int k = 0; //Lc下標(biāo) 
  //將La Lb組合成在一起 
  while (i<n && j<n)
  {
   if (La[i] < Lb[j])
   {
    Lc[k] = La[i];
    k++;
    Lc[k] = Lb[j];
   }
   else
   {
    if (La[i] == Lb[j])
    {
     Lc[k] = La[i];
     k++;
     Lc[k] = Lb[j];
    }
    else
    {
     Lc[k] = Lb[j];
     k++;
     Lc[k] = La[i];
    }
   }
   //各下標(biāo)往下移動 
   i++;
   j++;
   k++;
  } 
  //如果La中的數(shù)據(jù)沒有取完,及La比Lb長,則將La剩下的元素插入Lc中 這里是進行擴展 
  while (i<=n)
  {
   Lc[k++] = La[i++];
  } 
  //如果Lb中的數(shù)據(jù)沒有取完,及Lb比La長,則將Lb剩下的元素插入Lc中
  while (j<=n)
  {
    Lc[k++] = Lb[j++];
  } 
  //對組合好的元素進行排序 
  MySort(Lc); 
}
int main()
{
 int a1[n],a2[n], a[(2*n)];
 double b1[n], b2[n],b[(2*n)];
 char m1[n], m2[n], m[(2*n)];
 //輸入數(shù)據(jù) 歸并輸出 
 /*InPut(a1);
 InPut(a2); 
 MergeList(a1,a2,a);
 OutPut(a); */
 InPut(m1);
 InPut(m2); 
 MergeList(m1,m2,m);
 OutPut(m); 
 system("pause");
 return 0;
} 

希望本文所述對大家的C++程序設(shè)計有所幫助。

相關(guān)文章

  • C++和C中const的區(qū)別詳解

    C++和C中const的區(qū)別詳解

    這篇文章主要為大家介紹了C++和C中const的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • C語言中scanf函數(shù)與空格回車的用法說明

    C語言中scanf函數(shù)與空格回車的用法說明

    這篇文章主要介紹了C語言中scanf函數(shù)與空格回車的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C++實踐排序函數(shù)模板項目的參考方法

    C++實踐排序函數(shù)模板項目的參考方法

    今天小編就為大家分享一篇關(guān)于C++實踐排序函數(shù)模板項目的參考方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • C語言宏定義#define的使用

    C語言宏定義#define的使用

    本文主要介紹了C語言宏定義#define的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++ 數(shù)據(jù)結(jié)構(gòu)之水洼的數(shù)量算法

    C++ 數(shù)據(jù)結(jié)構(gòu)之水洼的數(shù)量算法

    這篇文章主要介紹了C++ 數(shù)據(jù)結(jié)構(gòu)之水洼的數(shù)量算法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C語言 typedef:給類型起一個別名

    C語言 typedef:給類型起一個別名

    本文主要介紹C語言 typedef,這里整理了相關(guān)資料及簡單示例代碼幫助大家學(xué)習(xí)理解,有興趣的小伙伴可以參考下
    2016-08-08
  • C語言數(shù)據(jù)在內(nèi)存中的存儲流程深入分析

    C語言數(shù)據(jù)在內(nèi)存中的存儲流程深入分析

    使用編程語言進行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個變量時,就會在內(nèi)存中保留一些空間。您可能需要存儲各種數(shù)據(jù)類型的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲什么
    2022-10-10
  • C++超詳細分析順序表

    C++超詳細分析順序表

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要創(chuàng)建這種元素組,用變量記錄它們,傳進傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲區(qū)里,元素間的順序關(guān)系由它們的存儲順序自然表示
    2022-03-03
  • 基于Qt實現(xiàn)離線瓦片地圖下載器

    基于Qt實現(xiàn)離線瓦片地圖下載器

    這篇文章主要介紹了如何通過Qt實現(xiàn)離線瓦片地圖下載器,文中的示例代碼對我們學(xué)習(xí)或工作有一定的幫助,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-01-01
  • C語言中宏定義的妙用方法

    C語言中宏定義的妙用方法

    今天小編就為大家分享一篇關(guān)于C語言中宏定義的妙用方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12

最新評論

中宁县| 许昌县| 于田县| 新疆| 疏勒县| 新平| 富锦市| 青田县| 友谊县| 仪征市| 固安县| 疏勒县| 安义县| 长春市| 增城市| 浙江省| 贵阳市| 讷河市| 岳阳市| 宜兰市| 崇义县| 大城县| 昌图县| 淮北市| 波密县| 奉贤区| 星子县| 永顺县| 宣恩县| 安陆市| 凤山县| 梁河县| 托克托县| 揭东县| 临高县| 邵东县| 上蔡县| 钦州市| 无为县| 洪洞县| 马边|