次のコードは、2次元のポインタ配列の1列ソート機能しない:2-Dポインタ配列をソートこれは、ほとんどの場合で動作C++:選択ソートは、特定のインスタンス
void sort(int** rowReferences, int rowCount, int colCount, int sortColumn) {
int pos, lower, temp;
for (int p = 0; p < rowCount; p++)
{
pos = p;
lower = rowReferences[p][sortColumn];
for (int j = p + 1; j < rowCount; j++) {
if (rowReferences[j][sortColumn] < lower) {
pos = j;
lower = rowReferences[j][sortColumn];
}
temp = rowReferences[p][sortColumn];
rowReferences[p][sortColumn] = rowReferences[pos][sortColumn];
rowReferences[pos][sortColumn] = temp;
}
}
}
が、それはdoesnの特定の列でかなり正しい方向に進む。
列値
がこの順序である:2、0、-1、1、3ソート機能を表示した後、この順序を返す:-1、0、2、1、3
としてあなたが見ることができる、最初の2つの値の並べ替えが動作しますが、それ以降は分解されます。このインスタンスで選択ソートを変更するにはどうすればよいですか?
編集*寛大PaulMcKenzieによって提供 最小、完全、検証可能例:http://ideone.com/lXHFHE
あなたはデバッグしていませんこれらの5つの値を使用して自分自身ですか? – PaulMcKenzie
このメソッドをrowCount = 5で呼び出していますか? – farzadshbfn
あなたは[この例](http://ideone.com/lXHFHE)のように[mcve]を提供しているはずです – PaulMcKenzie