2010-06-20 25 views
0

這是我的問題,我爲它寫了一個算法我想知道這個算法是正確的? 謝謝!!使用插入排序來識別數組的順序

問題: **我給出了一些數組,我應該根據「它們是有序的」對它們進行排序,例如一個數組按照正確的順序出現,並且一個數組表示它的元素在相反的順序是在最後。 假設數組的元素由字母A,C,G,T組成。包括輸入數組的數量(n),長度(m)和數組名稱。 **

我的算法:

Algorithm Sort(n,arr(One)[1,…,m],arr(Two)[1,…m],…arr(n)[1,…,m]) 

for i<--1 to n 
     m<-- SumTheNumberOfInversions(arr(i)) 
     v[i] = m 
Arrays.sort(v[i]) 
j <--i 
for j<-- 1 to n 
    return arr(j) 
//end of Sort algorithm 
--------------------------------------------- 
Algorithm SumTheNumberOfInversions(arr) 
Output: sum of the numbers of inversions 
{ 
    int i, j, t,numberOfInversions=0; 
    for (i=1; i<n; i++) 
    { 
     j=i; 
     t=arr[j]; 
     while (j>0 && arr[j-1]>t) 
     { 
      arr[j]=arr[j-1]; 
      numberOfInversions++; 
      j--; 
     } 
     arr[j]=t; 
    } 
    return numberOfInversions; 
} 
+0

請寫下投票的理由! – user355002 2010-06-20 19:07:49

+0

我沒有downvote,但我想這是因爲你的問題是不是很清楚,並讀取像一些不完整的剪切和粘貼作業。 – 2010-06-20 21:07:25

回答

1

聽起來像是你需要兩個成員的抽象數據類型的保存數組,另一個用於其unsortedness的量度。 創建這些類型的列表,每個陣列一個。 迭代並填充未分類成員(有很多方法可以衡量這一點) 對未分類字段的ADT進行排序。