Skip to content

Instantly share code, notes, and snippets.

@WizzyGeek
Last active February 22, 2024 15:46
Show Gist options
  • Save WizzyGeek/37b5edcd139479cf1d31d6db89f2068f to your computer and use it in GitHub Desktop.
Save WizzyGeek/37b5edcd139479cf1d31d6db89f2068f to your computer and use it in GitHub Desktop.
#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;
}
#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;
}
#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;
}
#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;
}
#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