C++ プログラミングを学んでいますが、基本的な配列ソート プログラムに問題があります。私のコードはコンパイラ エラーをスローしていないようです - VisualStudio2012 はエラーを表示しません。また、チュートリアル (learncpp.com) で見つけたコードとまったく同じようです。
出力は、選択ソートのすべてのステップで配列を表示することになっています。ただし、ランダムな文字と数字のさまざまな出力が得られます。これはメモリの問題ですか?または、他の何か?
また、コメントアウトされた「if」ループは、2 行のコードではなく 1 行で配列要素を交換する方法でした。それはソートに役立ちますか?
#include "stdafx.h"
#include <iostream>
#include <algorithm>
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std;
const int nSize = 6;
int anArray[nSize] = {30, 60, 20, 50, 40, 10};
for (int nStartIndex = 0; nStartIndex < nSize; nStartIndex++){
int nSmallestIndex = nStartIndex;
for (int nCurrentIndex = nSmallestIndex + 1; nCurrentIndex < nSize; nCurrentIndex++){
/* if (anArray[nCurrentIndex] < anArray[nSmallestIndex])
swap(anArray[nSmallestIndex], anArray[nCurrentIndex]);
*/
if (anArray[nCurrentIndex] < anArray[nSmallestIndex])
nSmallestIndex = nCurrentIndex;
}
swap(anArray[nStartIndex], anArray[nSmallestIndex]);
cout << "The current array: \t" << anArray << "\n";
}
return 0;
}