#include <iostream>
#include <cstdlib>
#include <ctime>
void SourceArray(int* array, int n);
void PrintArray(int* array, int n);
void BubbleSort(int array[], int size) {
for(int i = 1; i < size; ++i)
{
for(int r = 0; r < size - i; r++)
{
if(array[r] > array[r + 1])
{
int temp = array[r];
array[r] = array[r + 1];
array[r + 1] = temp;
}
}
}
std::cout << "Bubble Sorted Array1: ";
PrintArray(array, size);
}
int main() {
srand(time(NULL));
int size;
std::cout << "Array Size: ";
std::cin >> size;
int array[size];
//Создаем Массив с рандомными элементами
for(int i = 0; i < size; ++i)
{
array[i] = (rand() % 100) + 1;
}
std::cout << "Source Array: ";
SourceArray(array, size);
//Передаем Массив в Функцию
BubbleSort(array, size);
//Как сделать, что бы тут был исходный массив, а не сортированный ?
PrintArray(array, size);
return 0;
}
void SourceArray(int* array, int n) {
for(int i = 0; i < n; ++i) {
std::cout << array[i] << " ";
}
std::cout << "\n\n";
}
void PrintArray(int* array, int n) {
for(int i = 0; i < n; ++i) {
std::cout << array[i] << " ";
}
std::cout << "\n";
}
PrintArray
и SourceArray
. Код у них один и тот же.BubbleSort
по указателю, то есть, если BubbleSort
меняет массив, то он меняется вообще.BubbleSort
скопировать массив, и в функцию передать копию. Например:int array_copy[size];
memcpy(array_copy, array, size);