一个函数,它将显示正在使用插入排序对 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;}
}
我有错误,在本节中已突出显示 "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;}
}