У меня есть код для сортировки выбора, который я написал за год a go in Python здесь , но когда я попытался адаптировать его к C ++, он просто перестал работать полностью, и алгоритм, который логически точно такой же, по-разному сортирует алгоритм и выводит беспорядок.
void SelectionAscending2(int array[], int numItems)
{
int count;
int temp;
int minimum;
int Pass = 0;
//while (Pass < numItems)
for (int i = Pass; i < numItems; i++)
{
count = Pass + 1;
minimum = Pass;
//while (count <= numItems)
for (int j = count; j <= numItems; j++)
{
if (array[count] < array[minimum])
{
minimum = count;
count += 1;
}
}
temp = array[Pass];
array[Pass] = array[minimum];
array[minimum] = temp;
Pass += 1;
}
for (int i = 1; i < numItems; i++)
{
cout << array[i] << ", ";
}
}
int main()
{
int myArray[8] = { 4, 2, 1, 3, 6, 5, 8, 7 };
int length = sizeof(myArray) / sizeof(myArray[0]);
SelectionAscending2(myArray, length);
}
Этот код отлично работает в python, но в C ++ он вместо этого выводит: 2, 3, 4, 5, 6, 0, 7,
Я боролся с этим уже 3 дня, и ничего из того, что я сделал, не помогло.