Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void print(int* arr, int size) {
- for (int i = 0; i < size; i++) {
- cout << *(arr + i) << " ";
- }
- cout << endl;
- }
- void init(int* arr, int size) {
- for (int i = 0; i < size; i++) {
- *(arr + i) = rand() % 100;
- }
- }
- void sort(int arr[], int size) {
- int temp;
- for (int k = 0; k < size; k++) {
- for (int j = 0; j < size - k - 1; j++) {
- if (arr[j] > arr[j + 1]) {
- temp = arr[j];
- arr[j] = arr[j + 1];
- arr[j + 1] = temp;
- }
- }
- }
- }
- void merge(int* arr1, int size1, int* arr2, int size2, int* arr3, int size3) {
- int i1 = 0, i2 = 0;
- for (int i = 0; i < size3; i++) {
- if (i1 == size1) {
- for (int j = i; j < size3; j++) {
- *(arr3 + j) = *(arr2 + i2);
- i2++;
- }
- return;
- }
- if (i2 == size2) {
- for (int j = i; j < size3; j++) {
- *(arr3 + j) = *(arr1 + i1);
- i1++;
- }
- return;
- }
- if (*(arr1 + i1) > *(arr2 + i2)) {
- *(arr3 + i) = *(arr2 + i2);
- i2++;
- }
- else {
- *(arr3 + i) = *(arr1 + i1);
- i1++;
- }
- }
- }
- int main() {
- setlocale(LC_ALL, "ru");
- srand(time(NULL));
- const int size1 = 15, size2 = 18;
- int arr1[size1];
- int arr2[size2];
- init(arr1, size1);
- sort(arr1, size1);
- print(arr1, size1);
- init(arr2, size2);
- sort(arr2, size2);
- print(arr2, size2);
- const int size3 = size1 + size2;
- int arr3[size3];
- merge(arr1, size1, arr2, size2, arr3, size3);
- print(arr3, size3);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement