数据结构与算法----Java实现(第一章 算法的概述)

第一章算法的概述
1.什么是算法
算法是模型分析的一组可行的、确定的和有穷的规则(解题步骤)
2.算法的特征
有穷性、确切性、输入、输出、可行性
3.常用算法
递推、递归、穷举、贪婪、动态规划、迭代等
4.算法的起源
《周髀算经》
5.欧几里得算法又称“辗转相除法”
6.第一个公认的程序员 “Ada Byron”
7.算法的分类
(1)应用领域
①基本算法
②数据结构相关算法
③几何算法
④图论算法
⑤规划算法
⑥数值分析算法
⑦加解密算法
⑧排序算法
⑨查找算法
⑩并行算法
⑪数论算法
(2)确定性
①确定性算法 结果唯一
②非确定性算法 多值性
(3)算法思路
①递推算法
②递归算法
③穷举算法
④贪婪算法
⑤分治算法
⑥动态规划算法
⑦迭代算法
8.算法与公式的关系
公式是一种高精简的算法,算法不是公式,比公式更为复杂.
9.算法和程序的关系
程序设计语言是算法实现的一种形式
10.算法与数据结构的关系
①数据结构是数据的组织形似,可以用来表征特定的对象数据,比如:数组,结构体,指针…
②数据结构是算法实现的基础
③数据结构 + 算法 + 程序设计语言 = 程序
11.算法的表示(描述)
①自然语言 :low
②流程图 :顺序、分支、循环
③N-S图:又称”盒图“”CHARPIN图“
④伪代码:不能在计算机上运行
12.算法的性能评价
①时间复杂度 + 空间复杂度 = 算法复杂度
②时间复杂度:程序执行时间越短,算法越好
③空间复杂度:程序占用存储空间 + 程序运行中消耗的存储空间
13.算法实例
(1)查找数字算法
题目要求:程序随机生成一个20个整数的数组,输入要查找的数据,找到时打印在数组中的位置,为找到打印未找到
算法实现:

import java.util.Random;
import java.util.Scanner;

public class SearchNum {
    //生成一个长度为20的随机数组(0-100),输入一个数字,存在打印位置,不存在打印不存在
    static int N = 20;

    public static void main(String[] args) {
        //1.生成一个长度为20的随机数组(0-100)
        int[] ints = new int[N];
        Random random = new Random();

        for (int i = 0; i < N; i++) {
            ints[i] = random.nextInt(101);
            System.out.print(ints[i] + " ");
        }

        //输入一个数字,存在打印位置,不存在打印不存在
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入要查找的数字");
        int num = scanner.nextInt();
        int i = 0;
        for (int anInt : ints) {
            i++;
            if (num == anInt) {
                System.out.println("第" + i + "个");
                break;
            }
            if (i == ints.length) {
                System.out.println("未找到");
            }
        }

    }
}

14.算法的新进展
①并行运算:
划分法、分治法、平衡树法、倍增法/指针跳跃法、流水线法、破对称法
②遗传与进化法
遗传算法、进化算法
③量子算法
Shor算法、Grove搜索算法、Hogg搜索算法

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值