Algoritmusok 2

kiválogatás

Adott feltétel szerint kiválogatjuk egy adott lista elemeit és átrakjuk őket egy üres listába

Válogassuk ki a 4-nél nagyobb számokat!

         
1szamok = [ 3, 8, 2, 4, 7, 5, 1, 6]
2ujlista = []
3
4for szam in szamok:
5	if szam>4:
6		ujlista.append(szam)
7
8print('Eredeti lista:', szamok)
9print('kiválogatott lista:', ujlista)
10print('Nem megfelelő számok:', nemjo)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6	int szamok[] = {3, 8, 2, 4, 7, 5, 1, 6}; // fix tömb
7	vector<int> ujlista;
8
9	for (int szam : szamok) {
10		if (szam>4) {
11			ujlista.push_back(szam);
12			}
13		}
14
15    cout << "Eredeti lista: ";
16    for (int szam : szamok)
17        cout << szam << " ";
18    cout << endl;
19
20    cout << "Kiválogatott lista:: ";
21    for (int szam : ujlista)
22        cout << szam << " ";
23    cout << endl;
24
25    return 0;
26}

szétválogatás

Adott feltétel szerint kiválogatjuk egy adott lista elemeit és átrakjuk őket egy üres listába, a maradékot pedig átmásoljuk egy harmadik listába.

Válogassuk ki a 4-nél nagyobb számokat!

         
1szamok = [ 3, 8, 2, 4, 7, 5, 1, 6]
2ujlista = []
3nemjo = []
4
5for szam in szamok:
6	if szam>4:
7		ujlista.append(szam)
8	else:
9		nemjo.append(szam)
10
11print('Eredeti lista:', szamok)
12print('kiválogatott lista:', ujlista)
13print('Nem megfelelő számok:', nemjo)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6	int szamok[] = {3, 8, 2, 4, 7, 5, 1, 6}; // fix tömb
7	vector<int> ujlista;
8	vector<int> nemjo;
9
10	for (int szam : szamok) {
11		if (szam>4) {
12			ujlista.push_back(szam);
13			}
14		else {
15			nemjo.push_back(szam);
16			}
17		}
18
19    cout << "Eredeti lista: ";
20    for (int szam : szamok)
21        cout << szam << " ";
22    cout << endl;
23
24    cout << "Kiválogatott lista:: ";
25    for (int szam : ujlista)
26        cout << szam << " ";
27    cout << endl;
28
29    cout << "Nem megfelelő számok:: ";
30    for (int szam : nemjo)
31        cout << szam << " ";
32    cout << endl;
33
34    return 0;
35}

Halmazok uniója

Adott két halmaz és mindkét halmaz minden elemét áttesszük egy harmadikba

Első lépésként az A halmaz minden elemét betesszük az unio-ba, majd a B halmaznak csak azokat az elemeit tesszük be, amelyek még nincsenek az unio-ban.

         
1A = [ 9, 8, 12, 4, 7, 15, 1, 16]
2B = [ 3, 18, 12, 4, 17, 5, 11, 6]
3
4UNIO = A[:] # ezzel készítünk másolatot
5
6for elem in B:
7	if elem not in UNIO:
8		UNIO.append(elem)
9
10print('Az A lista elemei:', A)
11print('A B lista elemei:', B)
12print('Az unio lista elemei:', UNIO)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6	int A[] = {9, 8, 12, 4, 7, 15, 1, 16};
7	int B[] = {3, 18, 12, 4, 17, 5, 11, 6};
8	vector<int> UNIO;
9
10    for (int elem : A) {
11        UNIO.push_back(elem);
12		}
13
14	for (int elem : B) {
15		bool bennevan= false;
16		for (int u : UNIO) {
17			if (elem == u) {
18				bennevan=true;
19				break;
20				}
21			}
22		if (bennevan==false){
23			UNIO.push_back(elem);
24			}
25		}
26
27
28    cout << "Az A lista elemei: ";
29    for (int elem : A)
30        cout << elem << " ";
31    cout << endl;
32
33    cout << "A B lista elemei: ";
34    for (int elem : B)
35        cout << elem << " ";
36    cout << endl;
37
38    cout << "Az unio lista elemei: ";
39    for (int elem : UNIO)
40        cout << elem << " ";
41    cout << endl;
42
43    return 0;
44}

Halmazok metszete

Adott két halmaz és a mindkét halmazban szereplő (közös) elemeket áttesszük egy harmadikba

Ciklussal végigmegyünk az egyik halmaz elemein és a metszet-be tesszük azokat az elemeket, amelyek a másik halmazban is szerepelnek.

         
1A = [ 9, 8, 12, 4, 7, 15, 1, 16]
2B = [ 3, 18, 12, 4, 17, 5, 11, 6]
3METSZET = []
4
5for elem in A:
6	if elem in B:
7		METSZET.append(elem)
8
9print('Az A lista elemei:', A)
10print('A B lista elemei:', B)
11print('A metszet lista elemei:', METSZET)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6    int A[] = {9, 8, 12, 4, 7, 15, 1, 16};
7    int B[] = {3, 18, 12, 4, 17, 5, 11, 6};
8	vector<int> METSZET;
9
10    for (int elem : A) {
11        for (int b : A) {
12            if (elem == b) {
13				METSZET.push_back(elem);
14                break;
15				}
16			}
17		}
18
19    cout << "Az A lista elemei: ";
20    for (int elem : A)
21        cout << elem << " ";
22    cout << endl;
23
24    cout << "A B lista elemei: ";
25    for (int elem : B)
26        cout << elem << " ";
27    cout << endl;
28
29    cout << "A metszet lista elemei: ";
30    for (int elem : METSZET)
31        cout << elem << " ";
32    cout << endl;
33
34    return 0;
35}

Halmazok különbsége

         
1A = [ 9, 8, 12, 4, 7, 15, 1, 16]
2B = [ 3, 18, 12, 4, 17, 5, 11, 6]
3KULONBSEG = []
4
5for elem in A:
6	if elem not in B:
7		KULONBSEG.append(elem)
8
9print('Az A lista elemei:', A)
10print('A B lista elemei:', B)
11print('A kulonbseg lista elemei:', KULONBSEG)
1#include <iostream>
2#include <vector> // dinamikusan feltölthető tömb
3using namespace std;
4
5int main() {
6	int A[] = {9, 8, 12, 4, 7, 15, 1, 16};
7	int B[] = {3, 18, 12, 4, 17, 5, 11, 6};
8	vector<int> KULONBSEG;
9
10	for (int elem : A) {
11		bool bennevan= false;
12		for (int b : B) {
13			if (elem == b) {
14				bennevan=true;
15				break;
16				}
17			if (bennevan==false){
18				UNIO.push_back(elem);
19				}
20			}
21		}
22
23
24    cout << "Az A lista elemei: ";
25    for (int elem : A)
26        cout << elem << " ";
27    cout << endl;
28
29    cout << "A B lista elemei: ";
30    for (int elem : B)
31        cout << elem << " ";
32    cout << endl;
33
34    cout << "A kulonbseg lista elemei: ";
35    for (int elem : KULONBSEG)
36        cout << elem << " ";
37    cout << endl;
38
39    return 0;
40}

rendezés