を使用して配列を昇順にソートしたいと思いますC/C++
。結果は、要素インデックスを含む配列です。各インデックスは、並べ替えられた配列内の要素の位置に対応しています。
例
Input: 1, 3, 4, 9, 6
Output: 1, 2, 3, 5, 4
編集:シェルソート手順を使用しています。重複値のインデックスは、元の配列の最初にある重複値に基づいて任意に選択されます。
アップデート:
最善の努力にもかかわらず、ポインターの配列の並べ替えアルゴリズムを実装できませんでした。現在の例はコンパイルされません。
誰かが何が悪いのか教えてもらえますか?
助けていただければ幸いです。
void SortArray(int ** pArray, int ArrayLength)
{
int i, j, flag = 1; // set flag to 1 to begin initial pass
int * temp; // holding variable orig with no *
for (i = 1; (i <= ArrayLength) && flag; i++)
{
flag = 0;
for (j = 0; j < (ArrayLength - 1); j++)
{
if (*pArray[j + 1] > *pArray[j]) // ascending order simply changes to <
{
&temp = &pArray[j]; // swap elements
&pArray[j] = &pArray[j + 1]; //the problem lies somewhere in here
&pArray[j + 1] = &temp;
flag = 1; // indicates that a swap occurred.
}
}
}
};