1.虽然离期末考试不远了 我也很紧张 但是有意义的事情还是需要记录下来的
一个程序 说白了 就是玩个算法 而真正能用某一个高级一点的算法来解决一道题 也使我有一点点成就感 我认为 应试教育把一个算法考试几乎整成背诵内容 让人觉得非常难以理解 我宁愿擦边过考试 也想去做一些真正能给我带来进步的东西
这些就用看写一些心情blog吧
2.递归打印正三角
void Print_N(int n,int j){
for (int i = 0; i < j; i++)
cout << j;
puts("");
if (j < n)Print_N(n,j + 1);
}
3.最小公约数的递归算法
int Gcd(int n, int m)
{
if (n < 0 || m < 0) exit(0);
if (m == 0) return n;
else if (m > n) return Gcd(m, n);
else return Gcd(m, n%m);
}
4.优化后的冒泡排序算法
void Bubble_Sort(int *arr, int n){
assert(arr != NULL);
int tag = 1;
for (int i = 1; i < n&& tag == 1; i++){
tag = 0;
for (int j = 0; j < n - i; j++){
if (arr[j]>arr[j + 1]){
tag = 1;
int t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
}
1.总有蠢猪C++写多了不会写java了
韦森么黑色感觉好高级
我感觉在高级感这方面java 完胜 不过看的眼睛有点不舒服
2.贪心算法求解活动安排问题
void GreedySelector(int n, int s[], int f[])
{
int i = 1, j = 0;
while (i < n){
while (s[i] < f[j]){
i++;
}
cout << i << endl;
j = i;
i++;
}
}
int main(){
int s[] = { 1, 3, 0, 5, 3, 5, 6, 8, 8, 2, 12 };
int f[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
int n = 11;
cout << "选择的活动是:" << endl;
GreedySelector( n, s, f);
}
int main()
{
scanf("%d %d", &m, &n); //背包容量m和物品数量n
for (int i = 1; i <= n; i++)
{
scanf("%d %d", &w[i], &c[i]);
}
for (int i = 1; i <= n; i++) {
for (int v = m; v > 0; v--){
if (w[i] <= v) f[i][v] = max(f[i - 1][v], f[i - 1][v - w[i]] + c[i]);
else f[i][v] = f[i - 1][v];
}
}
printf("%d", f[n][m]);
return 0;
}
1.迪杰斯特拉
1.Floyed算法
3.普里姆(Prim)算法
在已经选好的顶点中选择最小
4.克鲁斯卡尔(Kruskal)算法
无环 且边最小