首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Young氏矩阵

  • 25-03-02 17:20
  • 2091
  • 12992
blog.csdn.net

6-3 Young氏矩阵
    一个m x n的Young氏矩阵(Young tableau)是一个m x n的矩阵,其中每一行的数据都从左到右排序,每一列的数据都从上到下排序。Young氏矩阵中可能会有一些∞数据项,表示不存在的元素。所以,Young氏矩阵可以用来存放r≦mn个有限的数。
    a)画一个包含元素{9,6,3,2,4,8,5,14,12}的4 x 4的Young氏矩阵。
    b)讨论一个m x n的Young氏矩阵,如果Y[1,1]=∞,则Y为空;如果Y[m,n]<∞,则Y是满的(包含m x n个元素)。
    c)给出一个在非空m x n的Young氏矩阵上实现EXTRACT-MIN的算法,使其运行时间为O(m+n)。你的算法应该使用一个递归子过程,它通过递归地解决(m-1) x n或m x (n-1)子问题来解决m x n的问题。(提示:考虑一个MAX-HEPIFY。)定义T(p)为EXTRACT-MIN在任何m x n Young氏矩阵上的最大运行时间,其中p=m+n。给出表达T(p)的、界为O(m+n)的递归式,并解该递归式。
    d)说明如何在O(m+n)时间内,将一个新元素插入到一个未满的m x n Young氏矩阵中。
    e)在不用其他排序算法帮助的情况下,说明如何利用n x n Young氏矩阵对n^2个数排序的运行时间为O(n^3)。
    f)给出一个运行时间为O(m+n)的算法,来决定一个给定的数是否在于一个给定的的m x n Young氏矩阵内。

 

分析与解答:

     a)遵循每一行的数据都从左到右排序,每一列的数据都从上到下排序,可以很容易写出一个可能的Young氏矩阵

          2       3       4        5

          6       8       9        12

         14      ∞      ∞       ∞

          ∞      ∞      ∞       ∞

 

     b)Y[1,1]是Young氏矩阵中最小的元素,如果它为∞,说明矩阵中每个元素的值均不小于∞,即每个元素均是∞,所以Y为空;Y[m,n]是Young氏矩阵中最大的元素,如果Y[m,n]<∞,说明矩阵中每个元素均小于∞,即Y是满的

 

     c)采用类似堆中提取最小元素的方法:将Young氏矩阵中最末的元素和第一个元素交换,然后类似MAX-HEAPIFY的方法调整第一个元素,整个过程如下:

 

 

 

而YOUNG-MIN-HEPIFY是一个递归过程。YOUNG-MIN-HEAPIFY(A, m, n)会和它紧邻的结点比较,要么调用YOUNG-MIN-HEAPIFY(A, m, n-1),要么调用YOUNG-MIN-HEAPIFY(A, m-1, n)。若令p=m+n,则有:

     T(p)= T(p-1)+O(1)

则总的运行时间为O(p),即为O(m+n)

 

   d)采用类似堆中增加元素的方法,先将∞放在Young矩阵的末尾,然后采用类似INCREASE-KEY的方法,向上调整

 

 

 

 


类似于上面的分析,若令p=m+n,则有:

     T(p)= T(p-1)+O(1)

则总的运行时间为O(p),即为O(m+n)

 

    e)每次提取其中的最小元素,调用YOUNG-EXTRACT-MIN,共需调用n  x n次,而每次YOUNG-EXTRACT-MIN需要O(n+n)运行时间,故总的运行时间为O(n^3)

 

   f)每次与最右上角的元素X相比:如果等于X,则找到了;如果小于X,则去掉最上面一行;如果大于X,则去掉最右边一行。

每次比较去掉一行或一列,则该算法的运行时间为O(m+n)

 

 

 

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览49583 人正在系统学习中
注:本文转载自blog.csdn.net的zhanglei8893的文章"http://blog.csdn.net/zhanglei8893/article/details/6234564"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top