这是显示结果的链接。
这个结果就是我的C ++结果必须如何
如此结果所示,有冒泡排序,选择排序和插入排序,
每种处理都会显示在黑屏上。
例如,(冒泡排序)
20 10 40 30
20 10 30 40
10 20 30 40。
我必须使用void displayPtrArray
来表示。
#include <iostream>
#include <string>
#include <array>
#include <iomanip>
using namespace std;
void reset(int array[], const int size);
void displayIntArray();
void displayPtrArray(const int array[], int size);
void BubbleSort(int array[], int size);
void SelectionSort(int array[], int size);
void InsertionSort(int a[], int size);
const int RR = 4;
int main()
{
int arr[RR];
reset(arr, RR);
}
void reset(int array[], const int size)
{
cout << "The originial array has been reset to:" << endl;
int array[RR] = { 20, 40, 10, 30 };
for (int n = 0; n < size; n++)
{
cout << setw(5) << array[n];
}
cout << endl << endl;
}
void displayPtrArray(const int array[], int size)
{
}
void displayIntArray()
{
}
void BubbleSort(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;
}
}
} while (swap);
}
void selectionSort(int array[], int size)
{
int startScan, minIndex, minValue;
for (startScan = 0; startScan < (size - 1); startScan++)
{
minIndex = startScan;
minValue = array[startScan];
for (int index = startScan + 1; index < size; index++)
{
if (array[index] < minValue)
{
minValue = array[index];
minIndex = index;
}
}
array[minIndex] = array[startScan];
array[startScan] = minValue;
}
}
void InsertionSort(int a[], int size)
{
for (int i = 1; i<size; i++)
{
int j;
int current = a[i];
for (j = i - 1; j >= 0 && a[j]> current; j--)
{
a[j + 1] = a[j];
}
a[j + 1] = current;
}
}
我使用该功能进行各种操作,但如果错误请告诉我。
教我如何使用
显示每种类型的过程void displayPtrArray
我真的不知道...... T_T ...........
请帮助!!
答案 0 :(得分:0)
实际上,查看排序过程非常简单。您只需在排序过程中输出。你不需要为此调用另一个功能。试试这样的事情
void BubbleSort(int array[], int size)
{
bool swap;
int temp;
do
{
swap = false;
for (int count = 0; count < (size); count++)
{
if (array[count] > array[count + 1])
{
temp = array[count];
array[count] = array[count + 1];
array[count + 1] = temp;
swap = true;
}
cout << "\nThe array is ";
for ( int i = 0; i < ( size - 1 ); i++ )
cout << array[i] << "\t"; // Look here
cout << "\nThe value of temp is " << temp << endl; // and here
}
} while (swap);
}
答案 1 :(得分:0)
您已经拥有displayPtrArray所需的确切代码!重置中定义的for
循环应该这样做。
查看预期输出,每次对数组进行更改时都会显示该数组。对于冒泡排序,当您进行交换时(在if语句的末尾),数组会发生变化,因此您希望在swap = true
之后的行中添加对displayPtrArray的调用。
对于选择排序,数组在外部for循环结束时更改,因此您应该在array[startScan] = minValue;
之后的行中添加对displayPtrArray的调用。
对于插入排序,数组在内部for循环的每次迭代时以及外部for循环的最后一行中更改,因此您可能必须在这两个位置调用displayPtrArray。
注意:如果您不熟悉语法,可以像下面这样调用函数:displayPtrArray(array, size);
其中array
是数组变量的名称(名称为array
在冒泡和选择排序中;它在插入排序中是a
而size
是数组的大小(在所有三个排序函数中一致地命名)。