-3

私の教授は、2D char 配列を列ごとにソートするように依頼したので、彼がソートしたい添付配列は

  unsorted          sorted last column
Lcekoeddhoffbmg     Balgfcaelhfkgeb
Lkcmggjcdhhglif     Kmlhmhcddfoeilc
Cgldjhcekjigcdd     Cgldjhcekjigcdd
Cgldjhcekjigcdn     Lkcmggjcdhhglif
Bffmdbkcenlafjk     Lcekoeddhoffbmg
Fggdijijegfblln     Jjlncnimjldfedj
Jjlncnimjldfedj     Bffmdbkcenlafjk
Amliglfohajcdmm     Amliglfohajcdmm
Balgfcaelhfkgeb     Fggdijijegfblln
Kmlhmhcddfoeilc     Cgldjhcekjigcdn

しかし問題は、彼が行全体を同じ文字にしたいということです。そのため、最後の列を並べ替える場合は、それに応じて行を上下に移動するだけです。これを開始する方法さえわかりません どんな助けでも大歓迎です

4

2 に答える 2

0

各 char 配列を文字列に変換してから、Java の文字列ソート機能を使用するだけです。次に、文字列を char 配列に変換します。

于 2012-12-13T00:40:24.683 に答える
0

1 次元配列をソートする方法を知っていると仮定すると (それ以外の場合は調べてください)、これはかなり似ています。

2 つの文字を交換する代わりに (アイテムの交換に基づくバブル ソートまたはその他の並べ替えアルゴリズムを使用する場合)、2 つの完全な行を交換します。したがって、次のようなものが得られます(バブルソートの場合):

for char1 of each_last_row_char
  for char2 of each_last_row_char_after_char1
    if char2 < char2 then
      swap rows of char1 and char 2
    end
  end
end

行全体を交換することもそれほど難しくありません。行内のアイテムの量を反復処理し (文字数が同じであると仮定)、両方の行のアイテムを交換します。

for index of row_items
  tmp = row1[index]
  row1[index] = row2[index]
  row2[index] = tmp
end

通常のスワップの実装と同様ですが、すべてのアイテムが対象です。

于 2012-12-13T00:40:40.987 に答える