编程算法基础

计算机的优势:计算速度
最笨的计算方法
-直接枚举每种可能的情况
-情况数不是天文数字就行
-要做到不遗漏
-最好不能重复
鸡兔问题示例
• 有鸡兔共50 头
• 共有脚120 只
• 问鸡兔分别的数量?
• X+y = 50, 2x + 4y = 120
• 计算机不是数学家,不会自己解方程。

public class T1
{
    public static void main(String[] args)
    {
        int HEAD = 50;
        int FOOT = 120;

        // x: 鸡数, y: 兔数
        for(int x=0; x<HEAD; x++){
            int y = HEAD - x;
            if(x * 2 + y * 4 == FOOT){
                System.out.println("x=" + x + ",y=" + y);
                break;
            }
        }
    }
}

韩信点兵问题
• 韩信知道部队人数大约1000 多,具体数字
不详。
• 使用如下办法
– 5人一组 余 1
– 7人一组 余 2
– 8人一组 余 3
• 考虑所有可能的人数 1000 - 2000

public class T2
{
    public static void main(String[] args)
    {
        for(int i=1000; i<2000; i++){
            if(i%5==1 && i%7==2 && i%8==3) System.out.println(i);
        }
    }
}
第一课:数据结构的基本概念和术语 第二课:抽象数据类型的表示与实现 第三课:算法算法设计要求 第四课:算法效率的度量和存储空间需求 第五课:线性表的类型定义 第六课:线性表的顺序表示和实现 第七课:实验一 线性表的顺序存储实验 第八课:线性表的链式表示与实现 第九课:循环链表与双向链表 第十课:栈的表示与实现 第十一课:栈的应用 第十二课:实验二 循环链表实验 第十三课:队列 第十四课:串的定义 第十五课:串的表示和实现 第十六课:串操作应用举例 第十七课:实验三:栈的表示与实现及栈的应用 第十八课:数组的顺序表示与实现 第十九课:实验四 串的实现实验 第二十课:广义表 第二十一课:树、二叉树定义及术语 第二十二课:实验五 数组实验 第二十三课:二叉树的存储结构 第二十四课:遍历二叉树 第二十五课:单元测验 第二十六课:图的定义与术语 第二十七课:实验六 二叉树实验 第二十八课:图的存储结构 第二十九课:静态查找表(一)顺序表的查找 第三十课:静态查找表(二)有序表的查找 第三十一课:动态查找表 第三十二课:哈希表(一) 第三十三课:哈希表(二) 第三十四课:插入排序,快速排序 第三十五课:实验七 查找 第三十六课:选择排序,归并排序 第三十七课:实验八 排序实验 第三十八课:文件概念,顺序文件 第三十九课:索引文件 第四十课:总复习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值