私は、来年に大学の教授のために準備をするために、友人から送られたサンプルの授業を進んでいます。私は分類されたデータを処理するソートと検索システムを作成しようとしています。このタスクでは、データを昇順でソートできるマージソートシステムを作成しました。しかし、私はこのアルゴリズムをどのように編集して降順でソートできるかは不明です。誰でもこのことがどうやってできるのか説明できますか?マージソートを編集して降順にソートするC#
現在のアルゴリズムは文字列の値を処理します。
これはUniversityのタスクに基づいているため、ソートと検索のアルゴリズムを実際にコーディングし、Visual Studioで使用可能な組み込み関数を使用する必要はありません。
static public void MainMerge<T>(T[] values, int left, int mid, int right) where T : IComparable<T>
{
int c = values.Length;
T[] temp = new T[c];
int i, eol, num, pos;
eol = (mid - 1);
pos = left;
num = (right - left + 1);
while ((left <= eol) && (mid <= right))
{
if (values[left].CompareTo(values[mid]) < 0)
temp[pos++] = values[left++];
else
temp[pos++] = values[mid++];
}
while (left <= eol)
temp[pos++] = values[left++];
while (mid <= right)
temp[pos++] = values[mid++];
for (i = 0; i < num; i++)
{
values[right] = temp[right];
right--;
}
}
static public void SortMerge<T>(T[] values, int left, int right) where T : IComparable<T>
{
int mid;
if (right > left)
{
mid = (right + left)/2;
SortMerge(values, left, mid);
SortMerge(values, (mid + 1), right);
MainMerge(values, left, (mid + 1), right);
}
}
ここで文字列を比較しますか?そのコード行はどのように機能しますか?あなたはその比較をどのように逆転させるでしょうか?それらの質問のそれぞれに答えることであなたの答えが得られます。長期間に渡って、皆さんを助けてくれるわけではありません。 – Dukeling