美文网首页
离散数学及应用——算法、整数、矩阵

离散数学及应用——算法、整数、矩阵

作者: DrChenZeng | 来源:发表于2018-10-08 15:30 被阅读0次

算法

算法是进行一项计算或解决一个问题的一组有限多条准确的指令。

搜索算法

线性搜索
二分搜索

排序

冒泡排序

冒泡排序是最简单的排序,但不是最有效的排序算法之一。
一次次比较相邻的元素,顺序不对,就交换相邻元素。
int[] a = {5,6,8,7};
设i为角标;
使用冒泡
i= 0;时
6587
6857
6875
i=1;
8675
8765
i=2;
8765

    for(int i=0;i<a.length-1;i++){
        for(int j=0;j<a.length-i-1;j++){
         int temp = a[j];
       if(a[j]<a[j+1])
  { a[j] =a[j+1]; a[j+1]=temp;}  
}

}
选择排序:
i= 0;时
8657
i=1;
8756
i=2;
8765

        for(int i=0;i<a.length-1;i++){
         int maxIndex = i;
       for(int j=i+1;j<a.length;j++){
        if(a[maxIndex]<a[j]){
         maxIndex = j;
}

}
int temp = a[i];
a[i] =a[maxIndex];
a[maxIndex]=temp;
}

插入排序

插入排序是一种简单的排序算法,但通常不是最有效的。
将指针指向某个元素,假设该元素左侧的元素全部有序,将该元素抽取出来,然后按照从右往左的顺序分别与其左边的元素比较,遇到比其大的元素便将元素右移,直到找到比该元素小的元素或者找到最左面发现其左侧的元素都比它大,停止;

  for(int i=1;i<a.length;i++){
    for(int j=i;j>0;j--){
    if(a[j]>a[j-1]){
        int temp = a[j-1];
        a[j-1] = a[j];
        a[j] = temp;
          }
     }
}
贪心算法

比如中国的货币,只看元,有1元2元5元10元20、50、100

如果我要16元,可以拿16个1元,8个2元,但是怎么最少呢?
如果用贪心算,就是我每一次拿那张可能拿的最大的。
比如16,我第一次拿20拿不起,拿10元,OK,剩下6元,再拿个5元,剩下1元
也就是3张 10、5、1。

每次拿能拿的最大的,就是贪心。

但是一定注意,贪心得到的并不是最优解,也就是说用贪心不一定是拿的最少的张数
贪心只能得到一个比较好的解,而且贪心算法很好想得到。
再注意,为什么我们的钱可以用贪心呢?因为我们国家的钱的大小设计,正好可以使得贪心算法算出来的是最优解(一般是个国家的钱币都应该这么设计)。如果设计成别的样子情况就不同了
比如某国的钱币分为 1元3元4元
如果要拿6元钱 怎么拿?贪心的话 先拿4 再拿两个1 一共3张钱
实际最优呢? 两张3元就够了

停机问题 0AA68E92-6DD7-4a4e-9203-D349E55D4A1C.png

不存在一个程序可以判断另一程序是多久结束,是否停机。

整数
矩阵乘法

计算机中用的进制是二进制,就算时采用二进制的乘除法,要快一些。
矩阵也是在android 的图片操作中会遇到,英文名matrix

  • 令A 为mk 矩阵,B为kn的矩阵。A和B的乘积AB是个m*n 的矩阵,其第(i,j)元素等于A的第i行与B的第j列
    对应元素乘积之和。
    475F4B4D-7B49-46f9-97B2-96117D151A60.png
    D91FD3B2-3B3A-4d65-A4CC-F49CF0E1DEB1.png
  • 0-1矩阵


    0AA68E92-6DD7-4a4e-9203-D349E55D4A1C.png
  • 布尔积


    D7B0B43B-004C-4060-95C0-462576E84FA5.png

相关文章

  • 离散数学及应用——算法、整数、矩阵

    算法 算法是进行一项计算或解决一个问题的一组有限多条准确的指令。 搜索算法 线性搜索 二分搜索 排序 冒泡排序 冒...

  • 矩阵分解的一点总结

    1.为什么要矩阵分解 2.矩阵分解的算法 3.矩阵分解算法的应用场景 4.评价指标 ---------------...

  • 分治法 Divide and Conquer

    解决的最轻,最重,矩阵乘法,大整数乘法以及排序(快速排序,归并算法)。快速傅立叶变换,Karatsuba乘法算法 ...

  • 1.1 绪言

    离散数学形成能力评价(Rosen) 数学推理能力 组合分析能力 离散结构分析和应用能力 算法思维能力 应...

  • 离散数学中的图矩阵

    本文涉及到的图矩阵主要包括邻接矩阵和关联矩阵,在离散数学中这部分内容属于用矩阵来表示图。 邻接矩阵 用矩阵表示图,...

  • 简单题28-搜索二维矩阵

    描述 写出一个高效的算法来搜索 m × n矩阵中的值。 这个矩阵具有以下特性: 每行中的整数从左到右是排序的。每行...

  • 离散数学及应用——集合

    半路出家的android程序员,内功修为需要累积,先是数学基础,再到数据结构,量变到质变,直到打通任督二脉,写代码...

  • R语言矩阵、数组、因子简单介绍及使用

    矩阵:(常用维度2维)类似于线性代数里面的矩阵. 机器学习算法 很多都有 应用到矩阵1.创建matrix(data...

  • 搜索二维矩阵

    写出一个高效的算法来搜索 m × n矩阵中的值。 这个矩阵具有以下特性: 每行中的整数从左到右是排序的。每行的第一...

  • LintCode题解 | 亚马逊面试真题:搜索二维矩阵 II

    【题目描述】写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。 这个矩阵具有以下特性: 每行中的整数...

网友评论

      本文标题:离散数学及应用——算法、整数、矩阵

      本文链接:https://www.haomeiwen.com/subject/rbedaftx.html