算法123

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)算法

无环  且边最小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值