亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

比較高效地實現(xiàn)從兩個不同數(shù)組中提取相同部分組

系統(tǒng) 1780 0

????????有時候我們需要從兩個不同數(shù)組中提取出相同的部分的數(shù)組或者計算有多少個相同的項,這個算法剛好能派上用場,

實現(xiàn)方案:
1、將兩個數(shù)組按從小到大排序;
2、遍歷第一個數(shù)組 array1,跟第二個數(shù)組 array2 做比較;
3、如果找到相等的則提取出該數(shù)據(jù)并且記錄下 array2 的下標(biāo)到臨時變量 t,下次循環(huán)則從 array2[t+1] 開始遍歷 array2;
4、如果沒有匹配到相等的而且 array2[t] 大于與 array1 對比的數(shù)據(jù)時, 記下 array2 當(dāng)前下標(biāo)到臨時變量 t,下次循環(huán)則從 array2[t] 開始;

經(jīng)過測試,該算法比“最笨”的作法無法在數(shù)組以何種方式排序都要強,如果量越多會越明顯,有點可惜的是暫時只能使用在 Int[] 上,有時間再想一下其它數(shù)據(jù)類型的比較

獲取兩個整型數(shù)組中相等項的集合
<!----> 獲取兩個整型數(shù)組中相等項的集合 #region ??獲取兩個整型數(shù)組中相等項的集合

/**/ /// ? <summary>
/// ?獲取兩個整型數(shù)組中相等項的集合
/// ? </summary>
/// ? <param?name="array1"></param>
/// ? <param?name="array2"></param>
/// ? <returns></returns>

public ? static ? int []?CompareEquation( int []?array1,? int []?array2)
{
????
int ?i1,?i2;
????
// ?記錄第二個數(shù)組上一次匹配到的位置
???? int ?t? = ? 0 ;
????
// ?記錄相同的項
????List < int > ?equal? = ? new ?List < int > ();

????
int []?sort1? = ?BubbleSort(array1);
????
int []?sort2? = ?BubbleSort(array2);

????
for ?( int ?i? = ? 0 ;?i? < ?sort1.Length;?i ++ )
????
{
????????i1?
= ?sort1[i];

????????
for ?( int ?j? = ?t;?j? < ?sort2.Length;?j ++ )
????????
{
????????????i2?
= ?sort2[j];

????????????
if ?(i2? == ?i1)
????????????
{
????????????????equal.Add(i2);
????????????????
// ?下次比較從下一位開始
????????????????t? = ?j? + ? 1 ;
????????????}

????????????
else ? if ?(i2? > ?i1)
????????????
{
????????????????
// ?下次比較繼續(xù)從這里開始
????????????????t? = ?j;
????????????????
break ;
????????????}

????????}

????}


????
return ?equal.ToArray();
}


#endregion

冒泡法排序(非原創(chuàng))
<!----> 冒泡法排序(非原創(chuàng)) #region ?冒泡法排序(非原創(chuàng))

/**/ /// ? <summary>
/// ?冒泡法排序
/// ? </summary>
/// ? <returns> 排序結(jié)果:?從小到大(升序) </returns>
/// ? <see?cref="http://www.aspcool.com/lanmu/browse1.asp?ID=1223&bbsuser=csharp"/>

public ? static ? int []?BubbleSort( int []?R)
{
????
int ?i,?j,?temp;
????
// 交換標(biāo)志?
???? bool ?exchange;
????
// 最多做R.Length-1趟排序?
???? for ?(i? = ? 0 ;?i? < ?R.Length;?i ++ )
????
{
????????
// 本趟排序開始前,交換標(biāo)志應(yīng)為假?
????????exchange? = ? false ;
????????
for ?(j? = ?R.Length? - ? 2 ;?j? >= ?i;?j -- )
????????
{
????????????
// 交換條件?
???????????? if ?(R[j? + ? 1 ]? < ?R[j])
????????????
{
????????????????temp?
= ?R[j? + ? 1 ];
????????????????R[j?
+ ? 1 ]? = ?R[j];
????????????????R[j]?
= ?temp;
????????????????
// 發(fā)生了交換,故將交換標(biāo)志置為真?
????????????????exchange? = ? true ;
????????????}

????????}

????????
// 本趟排序未發(fā)生交換,提前終止算法?
???????? if ?( ! exchange)
????????
{
????????????
break ;
????????}

????}


????
return ?R;
}


#endregion

測試結(jié)果:



所謂的最笨的方法:

自我感覺最笨的作法
<!----> 計算兩個整型數(shù)組中數(shù)值相等的數(shù)量(最笨的方法) #region ?計算兩個整型數(shù)組中數(shù)值相等的數(shù)量(最笨的方法)

/**/ /// ? <summary>
/// ?計算兩個整型數(shù)組中數(shù)值相等的數(shù)量(最笨的方法)
/// ? </summary>
/// ? <param?name="array1"></param>
/// ? <param?name="array2"></param>
/// ? <returns></returns>

public ? static ? int []?CompareEquation1( int []?array1,? int []?array2)
{
????List
< int > ?equal? = ? new ?List < int > ();

????
foreach ?( int ?i1? in ?array1)
????
{
????????
foreach ?( int ?i2? in ?array2)
????????
{
????????????
if ?(i1? == ?i2)
????????????
{
????????????????equal.Add(i1);
????????????}

????????}

????}

????
return ?equal.ToArray();
}


#endregion

從圖中可以看到運行效率有了很大的提升,
以上只是不成熟的解決方案,歡迎各位一起來討論!

相關(guān)代碼下載

比較高效地實現(xiàn)從兩個不同數(shù)組中提取相同部分組成新的數(shù)組(只支持Int類型) [C#]


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产高清免费午夜在线视频 | 日本不卡在线观看免费v | 亚洲两性 | 国产精品日韩欧美在线第3页 | 97久久精品 | 欧美破处在线 | 亚洲天堂二区 | 青青青青手机在线视频观看国产 | 九九久久国产精品大片 | 欧美精彩狠狠色丁香婷婷 | 99成人国产精品视频 | 四虎视屏 | 国产精品无码久久av | 久久乱码精品区中文字幕 | 亚洲日本中文字幕在线2022 | 欧美一区二区三区免费观看视频 | 久久伊人在 | 久久久国产在线 | 蘑菇视频绿巨人小黄鸭 | 中文字幕在线观看2023 | 三级五月天 | 中国美女日b | 不卡免费视频 | 天天碰天天摸天天操 | 亚洲日本在线观看视频 | 国产成人一区二区视频在线观看 | 殴美一级视频 | h视频网站在线观看 | 精品亚洲成a人在线观看 | 亚洲欧美日韩高清在线看 | 国产一区二区三区日韩欧美 | 四虎永久免费地址在线网站 | 狠狠色丁香久久婷婷综合五月 | 久久久久久久久性潮 | 国产欧美日韩精品专区 | 中文字幕欧美日韩va免费视频 | 四虎在线观看免费永久 | 久久精品国产精品青草 | 性色网站 | 久久夜色tv网站 | 国产欧美一区二区精品久久久 |