今日予定されている期末試験に向けて勉強しています。私の質問は、do-while(swap) ステートメントはここで何をするのですか? スワップはデフォルトで「true」に設定されていますか?
このコードについての私の理解では、並べ替えのパスごとに少なくとも 1 回反復します。内側の for ループは重要なコードを運び、パス内のすべてのスワップを行います。たとえば、array[count] は temp にコピーされ、array[count+1] は array[count] にコピーされ、array[count] は array[count+1] にコピーされます。2 つの要素が交換されると、bool swap が true に設定されます。外側のループは、swap フラグが false になるまで繰り返します。
void sortArray(int array[], int size)
{
int size;
bool swap;
do
{
swap = false;
for(int count = 0; count < (size -1); count++)
{
if(array[count] > array[count+1])
{
temp = array[count];
array[count] = array[count+1];
array[count+1] = temp;
swap = true;
}
}
}while(swap);
}