*注:筆者表達能力欠佳且過程複雜,如看不懂,請參閱他人詳解
核心資源節省
for(int i=0;i<4;i++)
{
if(sto[i]==test[i])
{
a[i]++;
}
}
for(int i=0;i<4;i++)
{
for(int k=0;k<4;k++)
{
if(test[i]==sto[k]&&a[i]==0&&a[k]==0&&b[k]==0)
{
b[k]++;
break;
}
}
}
a[i]==0&&a[k]==0&&b[k]==0
詳細解釋:
a[i]是算在"測試資料"和"原本資料"上的,所以a[i]==1代表"測試資料"已被讀取無須再讀;而a[k]==1代表"原本資料"已被讀取無須再讀
b[k]是算在"原本資料"上的,所以b[k]==1代表"原本資料"已被讀取無須再讀
a[4],b[4]陣列皆為bool陣列固可節省空間,且不須改變原本資料內容,意即不須多一個陣列臨時儲存
用此方法約可節省7KB的記憶體