次の問題が発生しました。
のようなN個の番号の2つのファイルが与えられた
file1.dat:1,2,3,4,5,6,7,8,9,0
file2.dat:2,5,4,7,6,9,8,1,0,3
file2.datは、実際には最初のもののシャッフルバージョンにすぎません。最初のファイルの2つの連続する番号の順序が、2番目のファイル(同じ番号を含む)で何回変更されたかを知りたいです。たとえば、ファイル1では1と2を探し始め、2番目のファイルでは2が1の前に来るため、順序が変更されました。最初のファイルには9、次に0があり、2番目のファイルにも9が0の前に来るため、この順序が維持されます。
私が使用している実際のデータは、おおよそ26000の数字で構成されており、それらはすべて別個のものです。
私は次のようなことを考えました:
for(i=0; i<N-1; i++)
for(j=0; j<N; j++)
for(k=0 ; k<N; k++)
if(B[j]==A[i] && B[k]==A[i+1] && k < j )
count++
print("The number of inversion is: %d\n",count)
しかし、awkでそれを書く方法がわかりません(私は小さなCプログラムを書きましたが、答えを出すのに5時間以上かかります)。 。