一个函数,它将显示正在使用插入排序对 C++ 排序的数组的内容

A function which will display the contents of an array being sorted c++ using insertion sort

我有错误,在本节中已突出显示 "cout << array[i] << endl;"。该行位于 array[i] 下。错误是 "argument list for class template "std::array" is missing ".我需要一个函数来显示数组的内容,使用插入排序。如果此代码不正确,是否有人知道使用线性搜索输出数组内容的代码。

#include <iostream>
#include <string>
#include <sstream>
using namespace std;



int main()
{
    int numbers[SIZE] = { 6,3,1,9,4,12,17,2 };
    for (int i = 0; i < 8; i++)
    {
        cout << array[i] << endl;
    }

    system("pause");
}

const int SIZE = 8;
void insertionSort(int numbers[], int arraySize)
{
    int i, j, insert;

    for (i = 1; i < arraySize; i++)
    {
        insert = numbers[i];
        j = i;
        while ((j > 0) && (numbers[j - 1] > insert))
        {
            numbers[j] = numbers[j - 1];
            j = j - 1;
        }
        numbers[j] = insert;

    }
}

您没有在 main() 中调用函数 insertionSort(int numbers[], int arraySize)。因此原始数组不会发生任何变化。

请注意,您需要在 int main() 中使用 return 0; 语句。并且您需要使用 numbers[i] 而不是 array[i]。您需要将 insertionSort() 设置为 return "something" 或将您的 numbers[] 作为参考。也不要忘记 main().

之前的函数原型

这应该有效:

const int SIZE = 8;
void insertionSort(int [], int);

int main()
{
    int numbers[SIZE] = { 6,3,1,9,4,12,17,2 };
    insertionSort(numbers, SIZE);
    for (int i = 0; i < 8; i++)
        cout << numbers[i] << endl;

    system("pause");
    return 0;
}

void insertionSort(int MyArray[], int size)
{
    int i, j, insert;

    for (i = 1; i < size; i++){
        insert = MyArray[i];
        j = i;
        while ((j > 0) && (MyArray[j - 1] > insert)){
            MyArray[j] = MyArray[j - 1];
            j = j - 1;}
        MyArray[j] = insert;}
}