这就是问题所在。
编写一个程序,它使用两个相同的至少 20 个整数的数组。它应该调用一个函数,该函数使用冒泡排序算法对其中一个数组进行升序排序。该函数应记录其进行的交换次数。然后程序应该调用一个函数,该函数使用选择排序算法对另一个数组进行排序。它还应该计算它进行的交换次数。在屏幕上显示这些值。这就是我的问题所在。我可以做 voidbubbleSort
和 voidselectionSort
并对我输入的 20 个随机数进行排序,但我很难弄清楚如何为每种排序方法中的交换次数添加一个计数器。
此外,该指令说使用int bubbleSort(long [], int);
and int selectionSort(long [], int);
。我很困惑为什么我会使用 int 而不是 void。也许我两个都用?
无论如何,非常感谢任何帮助。谢谢你。
编辑:这是我到目前为止所拥有的。
//Sorting Benchmarks
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
// Function Prototypes
void sortArray (int [], int);
void showArray (const int [], int);
int bubbleSort(long [], int);
int selectionSort(long [], int);
int main()
{
// Define an array with unsorted value
const int SIZE = 20;
int values[SIZE]{20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1);
// Display the values
cout << "The unsorted values are:\n";
showArray(values, SIZE);
//Sort the values.
sortArray(values, SIZE);
//Display them again.
cout << "The sorted values are:\n";
showArray(values, SIZE);
return 0;
}
void sortArray(int array[], int size)
{
bool swap;
int temp;
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;
count++
dispCount()
}
}
} while (swap);
}
void dispCount()
{
cout << "The current number of exchanges are " << count << endl;
}
void showArray(const int array[], int size)
{
for (int count = 0; count < size; count++)
cout << array[count] << " ";
cout << endl;
system("PAUSE");
}
有了这个,我得到了一百万个错误,最大的一个在 int main 中,它在“int”之前表示预期的主表达式和预期的';' 在“int”之前。我已经检查过了,我觉得所有的 ; 都是它们所属的地方。