Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- using namespace std;
- bool isSorted(const int v[], int len) {
- int n = 0;
- for (const int* ptr = v + 1; n < (len-1); ptr++, v++, n++)
- {
- if (*ptr < *v) return false;
- }
- return true;
- }
- void merge(const int* v1, int v1len, const int* v2, int v2len, int* vDest) {
- const int* ptr1 = v1;
- const int* ptr2 = v2;
- int i = 0, j = 0, k = 0;
- //Elemente der Vekoren angleichen
- while (i < v1len && j < v2len)
- {
- if (*(v1 + i) <= *(v2 + j))
- {
- *(vDest + k) = *(v1 + i);
- k++; i++;;
- }
- else
- {
- *(vDest + k) = *(v2 + j);
- k++; j++;
- }
- }
- //Vektor 1 durchlaufen und in Vektor 3 einfügen
- while (i < v1len)
- {
- *(vDest + k) = *(v1 + i);
- i++; k++;
- }
- // Vektor 2 durchlaufen und in Vektor 3 einfügen
- while (j < v2len)
- {
- *(vDest + k) = *(v2 + j);
- j++; k++;
- }
- }
- void Werte_eingeben(int* v, int vlen)
- {
- int i = 1;
- for (int* ptr1 = v; (ptr1 - v) < vlen; ptr1++)
- {
- cout << i++ << "." << " Vektorelement -> ";
- cin >> *ptr1;
- }
- }
- void vDest_Ausgabe(int* v3, int l)
- {
- for (int* ptr3 = v3; (ptr3 - v3) < l; ptr3++)
- cout << *ptr3 << " ";
- }
- void main() {
- //Elemente Vektor
- int vSource1[10] = {};
- int vSource2[10] = {};
- int v1len;
- int v2len;
- //Ausgabe Vektor 1
- cout << "Geben Sie die Laenge des 1. Vektors ein (max 10) -> ";
- cin >> v1len;
- Werte_eingeben(vSource1, v1len);
- //Ausgabe Vektor 2
- cout << "Geben Sie die Laenge des 2. Vektors ein (max 10) -> ";
- cin >> v2len;
- Werte_eingeben(vSource2, v2len);
- //Zusammenfügen in Vektor 3
- int vDest[20] = {};
- int v3len = v1len + v2len;
- //Anhängen eines Vektors an einen anderen
- merge(vSource1, v1len, vSource2, v2len, vDest);
- //Ergebnis
- if (isSorted(vDest, v3len)) cout << "GG\nNeuer Vektor\n";
- else cout << "RIP\nNeuer Vektor\n";
- for (int i = 0; i < v3len; i++)
- {
- cout << vDest[i] << " ";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement