Last active
February 22, 2024 15:46
-
-
Save WizzyGeek/37b5edcd139479cf1d31d6db89f2068f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<bits/stdc++.h> | |
int argmin(std::vector<int> &a, int from) { | |
int m = a.at(from); | |
int mi = from; | |
for (int i = from; i < a.size(); i++) if (a[i] < m) { m = a[i]; mi = i; } | |
return mi; | |
} | |
void bubble_sort(std::vector<int> &a) { | |
for (int i = 0; i < a.size() - 1; i++) { | |
int marg = argmin(a, i); | |
std::swap(a[i], a[marg]); | |
} | |
} | |
void display(std::vector<int> &a) { | |
for (int k : a) std::cout << k << ' '; | |
std::cout << '\n'; | |
} | |
int main() { | |
std::vector<int> a = {2, 3, 4, 1, 65, -8, 999, -7}; | |
display(a); | |
bubble_sort(a); | |
display(a); | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<bits/stdc++.h> | |
int argmin(std::vector<int> &a, int from) { | |
int m = a.at(from); | |
int mi = from; | |
for (int i = from; i < a.size(); i++) if (a[i] < m) { m = a[i]; mi = i; } | |
return mi; | |
} | |
int argmax(std::vector<int> &a, int from) { | |
int m = a.at(from); | |
int mi = from; | |
for (int i = from; i < a.size(); i++) if (a[i] > m) { m = a[i]; mi = i; } | |
return mi; | |
} | |
void bubble_sort(std::vector<int> &a) { | |
for (int i = 0; i < a.size() - 1; i++) { | |
int marg = argmin(a, i); | |
std::swap(a[i], a[marg]); | |
} | |
} | |
void bubble_sort_down(std::vector<int> &a) { | |
for (int i = 0; i < a.size() - 1; i++) { | |
int marg = argmax(a, i); | |
std::swap(a[i], a[marg]); | |
} | |
} | |
void display(std::vector<int> &a) { | |
for (int k : a) std::cout << k << ' '; | |
std::cout << '\n'; | |
} | |
int main() { | |
std::vector<int> a(100); | |
std::generate(a.begin(), a.end(), [](){ return std::rand() % 1000; }); | |
display(a); | |
bubble_sort(a); | |
display(a); | |
bubble_sort_down(a); | |
display(a); | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<bits/stdc++.h> | |
// 2 * 2 Array | |
// Output added matrix | |
// Get array | |
// for i in matrix shape range | |
// c[i] = a[i] + b[i]; | |
using TD = std::vector<std::vector<int>>; | |
TD add(TD &a, TD &b) { | |
TD ret(a.size(), std::vector<int>(a[0].size(), 0)); | |
for (int i = 0; i < a.size(); i++) | |
for (int j = 0; j < a[0].size(); j++) { | |
ret[i][j] = a[i][j] + b[i][j]; | |
} | |
return std::move(ret); | |
} | |
// ret[r, c] = row dot column vector | |
TD multi(TD &a, TD &b) { | |
TD ret(a.size(), std::vector<int>(b[0].size(), 0)); | |
for (int i = 0; i < a.size(); i++) | |
for (int j = 0; j < b[0].size(); j++) { | |
for (int k = 0; k < b.size(); k++) { | |
ret[i][j] += a[i][k] * b[k][j]; | |
} | |
} | |
return std::move(ret); | |
} | |
void display(TD &a) { | |
for (auto &i : a) { | |
for (auto k : i) | |
std::cout << k << ' '; | |
std::cout << '\n'; | |
} | |
} | |
int main() { | |
TD a = {{1, 2}, {2, 3}}; | |
TD b = {{2, 3}, {6, 7}}; | |
display(a); | |
display(b); | |
TD c = add(a, b); | |
TD d = multi(a, b); | |
display(c); | |
display(d); | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<bits/stdc++.h> | |
int min(std::vector<int> &a) { | |
int m = a.at(0); | |
for (auto i : a) if (i < m) m = i; | |
return m; | |
} | |
int max(std::vector<int> &a) { | |
int m = a.at(0); | |
for (auto i : a) if (i > m) m = i; | |
return m; | |
} | |
void display(std::vector<int> &a) { | |
for (int k : a) std::cout << k << ' '; | |
std::cout << '\n'; | |
} | |
int main() { | |
std::vector<int> a = {2, 3, 4, 1, 65, -8, 999, -7}; | |
display(a); | |
std::cout << max(a) << ' ' << min(a); | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<bits/stdc++.h> | |
using TD = std::vector<std::vector<int>>; | |
int minc(TD &a, int col) { | |
int m = a.at(0)[col]; | |
for (int i = 0; i < a.size(); i++) if (a[i][col] < m) m = a[i][col]; | |
return m; | |
} | |
int maxc(TD &a, int col) { | |
int m = a.at(0)[col]; | |
for (int i = 0; i < a.size(); i++) if (a[i][col] > m) m = a[i][col]; | |
return m; | |
} | |
void display(TD &a) { | |
for (auto &i : a) { | |
for (auto k : i) | |
std::cout << k << ' '; | |
std::cout << '\n'; | |
} | |
std::cout << '\n'; | |
} | |
TD minmax_colmat(TD &a) { | |
TD ret(2, std::vector<int>(a[0].size())); | |
for (int i = 0; i < a[0].size(); i++) { | |
ret[0][i] = minc(a, i); | |
ret[1][i] = maxc(a, i); | |
// std::cerr << i << "\n"; | |
} | |
return std::move(ret); | |
} | |
int main() { | |
TD dat = { | |
{10, -3, 4, 6, 999}, | |
{-1, -2, 3, 7, 8934}, | |
{44, 2, 2, -1, 4487}, | |
{-4, -92, -5, -0, -487}, | |
}; | |
TD ret = minmax_colmat(dat); | |
display(ret); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment