欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++歸并算法實(shí)例

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

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

/* 
 歸并算法:把兩個(gè)或兩個(gè)以上的線性表合并在一起,形成一個(gè)新的線性表
 函數(shù)模版的基本使用
 程序意圖:將兩個(gè)相同類型的線性表元素排好序,然后將他們組合成一個(gè)排好的線性表 
*/
#include <iostream>
using namespace std;
const int n = 5; //5個(gè)元素 
//輸出數(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<<"請(qǐng)輸入5個(gè)數(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ù)臨時(shí)變量 
  //冒泡錨序 
  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; //作為L(zhǎng)a的下標(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)往下移動(dòng) 
   i++;
   j++;
   k++;
  } 
  //如果La中的數(shù)據(jù)沒(méi)有取完,及La比Lb長(zhǎng),則將La剩下的元素插入Lc中 這里是進(jìn)行擴(kuò)展 
  while (i<=n)
  {
   Lc[k++] = La[i++];
  } 
  //如果Lb中的數(shù)據(jù)沒(méi)有取完,及Lb比La長(zhǎng),則將Lb剩下的元素插入Lc中
  while (j<=n)
  {
    Lc[k++] = Lb[j++];
  } 
  //對(duì)組合好的元素進(jìn)行排序 
  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;
} 

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

相關(guān)文章

  • C語(yǔ)言socket編程開發(fā)應(yīng)用示例

    C語(yǔ)言socket編程開發(fā)應(yīng)用示例

    這篇文章主要介紹了C語(yǔ)言socket編程開發(fā)應(yīng)用,示例簡(jiǎn)單,大家參考使用吧
    2013-12-12
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)與算法之圖的遍歷(二)

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)與算法之圖的遍歷(二)

    這篇文章主要是介紹了利用廣度優(yōu)先算法實(shí)現(xiàn)圖的遍歷,文中利用圖文詳細(xì)的介紹了實(shí)現(xiàn)步驟,對(duì)我們學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法有一定的幫助,需要的朋友可以參考一下
    2021-12-12
  • C++中this指針的理解與作用詳解

    C++中this指針的理解與作用詳解

    這篇文章主要給大家介紹了關(guān)于C++中this指針的理解與作用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 帶你粗略了解C++中的深淺拷貝

    帶你粗略了解C++中的深淺拷貝

    這篇文章主要給大家介紹了關(guān)于c++中深淺拷貝以及寫時(shí)拷貝實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • C++模擬實(shí)現(xiàn)vector流程詳解

    C++模擬實(shí)現(xiàn)vector流程詳解

    這篇文章主要介紹了C++容器Vector的模擬實(shí)現(xiàn),Vector是一個(gè)能夠存放任意類型的動(dòng)態(tài)數(shù)組,有點(diǎn)類似數(shù)組,是一個(gè)連續(xù)地址空間,下文更多詳細(xì)內(nèi)容的介紹,需要的小伙伴可以參考一下
    2022-08-08
  • 淺談分詞器Tokenizer

    淺談分詞器Tokenizer

    分詞器的工作就是分解文本流成詞(tokens).在這個(gè)文本中,每一個(gè)token都是這些字符的一個(gè)子序列。一個(gè)分析器(analyzer)必須知道它所配置的字段,但是tokenizer不需要,分詞器(tokenizer)從一個(gè)字符流(reader)讀取數(shù)據(jù),生成一個(gè)Token對(duì)象(TokenStream)的序列
    2021-06-06
  • 詳細(xì)聊聊c語(yǔ)言中的緩沖區(qū)問(wèn)題

    詳細(xì)聊聊c語(yǔ)言中的緩沖區(qū)問(wèn)題

    緩沖區(qū)又稱為緩存,它是內(nèi)存空間的一部分,也就是說(shuō)在內(nèi)存空間中預(yù)留了一定的存儲(chǔ)空間,這些存儲(chǔ)空間用來(lái)緩沖輸入或輸出的數(shù)據(jù),這部分預(yù)留的空間就叫做緩沖區(qū),這篇文章主要給大家介紹了關(guān)于c語(yǔ)言中緩沖區(qū)問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • C++超詳細(xì)講解函數(shù)重載

    C++超詳細(xì)講解函數(shù)重載

    C++ 允許多個(gè)函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function Overloading),借助重載,一個(gè)函數(shù)名可以有多種用途
    2022-05-05
  • C++函數(shù)指針詳解

    C++函數(shù)指針詳解

    這篇文章主要介紹了C++函數(shù)指針詳解,通過(guò)文字描述C++函數(shù)指針基礎(chǔ)概念,內(nèi)涵詳細(xì)的代碼實(shí)現(xiàn)和解析,希望對(duì)你能夠有所幫助
    2021-06-06
  • C語(yǔ)言的strcpy函數(shù)你了解嗎

    C語(yǔ)言的strcpy函數(shù)你了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的strcpy函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論