string[]數組求異算法研究js/c#

 原問題是這樣:有2個string[]分別存得漢字大約也就3-4個漢字無任何符號
string[] a
string[] b

現在怎麼樣可以找出
a和b 中相差的名稱?
例如a比b多3個名稱 
或b比a多5個名稱
最終結果不管是誰比誰多出來,
主要是找出相差的這幾個名稱

 

思路1:

 

思路2:是先排序在比較,代碼如下:

 

  

輸出:

a[]:二b,留,六,三,四,五,一
b[]:八,辦,成績,二a,六,四


成績
二a
二b




請按任意鍵繼續. . .

 

思路1代碼簡單,但是效率明顯是思路2快,

方法2的思路是

1.判斷b[0]>b[5]或者b[5] <a[0],直接輸入a,b合集
2.m=0,b[0]開始,在a[]中遍歷,
如果找到大於等於b[0]的,flag=true,標識a[]中下次查找位置t=i+1,break;
3.如果flag=false,說明a[]中沒有b[0],b[0]入棧c.push(b[0])
否則說明有說明有a[]中有b[0],因爲是a是從小到大排序好的,
t位置之前的元素,b[]中肯定沒有,所以都可以被c push入棧
4.如果m是b最後一個元素,這是如果t小於a.length,那a[]中>=m位置所有元素只要不等於b[m]都入棧,結束
5.m++,m <=a.length進入步驟2,否者結束

 如果排序好,那2的效率更高

js版本:

 

發佈了35 篇原創文章 · 獲贊 2 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章