程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++合並算法實例

C++合並算法實例

編輯:關於C++

C++合並算法實例。本站提示廣大學習愛好者:(C++合並算法實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C++合並算法實例正文


本文實例講述了C++合並算法。分享給年夜家供年夜家參考。詳細以下:

/* 
 合並算法:把兩個或兩個以上的線性表歸並在一路,構成一個新的線性表
 函數模版的根本應用
 法式意圖:將兩個雷同類型的線性表元素排好序,然後將他們組分解一個排好的線性表 
*/
#include <iostream>
using namespace std;
const int n = 5; //5個元素 
//輸入數據元素
template <class T1>
void OutPut(T1 out[(2*n)])
{ 
  for (int i=0; i<(2*n); i++)
  { 
  cout<<out[i]<<" ";
  }
  cout<<endl;
} 
//輸出數據元素 
template <class T2>
void InPut(T2 in[n])
{
  cout<<"請輸出5個數據元素:";
  for (int i=0; i<n; i++)
  { 
  cin>>in[i];
  cout<<" "; 
  }
  cout<<endl;
}
//模版函數 輸出線性表元素並將其排序
template <class T3> 
void MySort(T3 a[2*n])
{
  int temp; //交流數據暫時變量 
  //冒泡錨序 
  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; 
    }
   }
  }
}
//模版函數 合並 
template <class T> 
void MergeList(T La[n], T Lb[n], T Lc[(2*n)]) 
{
  int i = 0; //作為La的下標 
  int j = 0; //Lb下標
  int k = 0; //Lc下標 
  //將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];
    }
   }
   //各下標往下挪動 
   i++;
   j++;
   k++;
  } 
  //假如La中的數據沒有取完,及La比Lb長,則將La剩下的元素拔出Lc中 這裡是停止擴大 
  while (i<=n)
  {
   Lc[k++] = La[i++];
  } 
  //假如Lb中的數據沒有取完,及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)];
 //輸出數據 合並輸入 
 /*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++法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved