C ++选择排序不排序

时间:2016-12-12 20:22:34

标签: c++ sorting

我直接从书中复制了一个选择排序函数以应用于数组,但它没有正确排序。使用cout打印元素0,10和19给出原始整数。

int main()
{

    int startScan, minIndex, minValue;
    int exchanges = 0;
    int selTestArray[20] = {84, 74, 65, 26, 37, 91, 94, 44, 52, 50, 50, 47, 34, 61, 70, 12, 59, 94, 61, 32};
    int size = 20;

    for (startScan = 0; startScan < (size - 1); startScan++);
    {
        minIndex = startScan;
        minValue = selTestArray[startScan];
        for (int index = startScan + 1; index < size; index++)
        {
            if (selTestArray[index] < minValue)
            {
                minValue = selTestArray[index];
                minIndex = index;
            }
        }
        selTestArray[minIndex] = selTestArray[startScan];
        selTestArray[startScan] = minValue;
        exchanges++;
    }

    cout << exchanges << endl;
    cout << selTestArray[0] << endl;
    cout << selTestArray[10] << endl;
    cout << selTestArray[19] << endl;

    cin.get();
}

1 个答案:

答案 0 :(得分:3)

在你的第一个for循环中,你最后有一个分号:

for (startScan = 0; startScan < (size - 1); startScan++); 
//                                                ------^

你有一个空循环和一段执行一次的代码。