熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構之順序表上基本運算的實現[14]

2013-11-15 15:35:20  來源: 數據結構 

  while ( ilength && jlength )

  {

  if (A>date[i]date[j]) *C>data[k++]=A>data[i++];

  else *C>data[k++]=B>data[j++];

  }/*while */

  while (ilength ) /*B已掃描完則將A的余下部分復制到C中*/

  *C>data[k++]= A>data[i++];

  while (jlength ) /*A已掃描完則將B的余下部分復制到C中*/

  *C>data[k++]= B>data[j++];

  *C>length=k;

  return(); /*合並成功*/

  }

  本算法的時間復雜度是O(m+n)其中m是線性表A的表長n是線性表B的表長

  【例】 約瑟夫問題設由n個人圍坐在一個圓桌周圍現從第s個人開始從報數數到m的人出列然後從出列的下一個人重新開始從報數數到m的人再出列……如此反復直到所有的人都出列求出出列的次序要求用順序表求解

[]  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/sjjg/201311/23643.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.