算法导论-problems-6.3-杨氏矩阵-Young tableaus
什么是杨氏矩阵
n x n 的矩阵,任一个元素小于它右邻元素和下邻元素,对任一行,从左到右递增
对任一列从上到下递增,空的位置用正无穷补足(正无穷的位置也要符合杨氏矩阵的定义)
根据定义,a[0,0] 是该矩阵的最小值, a[n,n] 是该矩阵的最大值
一、取出最小元素,EXTRACT-MIN
与堆排序类似,取出a[0,0]【取出堆顶元素】,用a[n,n]填补空缺【与堆尾元素交换】
然后进行下沉操作,即先比较它的右邻元素和下邻元素,其中的最小值和a[1,1]比较,然后根据结果进行交换,交换后比较它的右邻元素和下邻元素。。。。
最坏的情况下时间复杂度为O(n+n),也就是从a[0,0]一直下沉到a[n,n]
用杨氏矩阵来进行排序(问题规模nn)时间复杂度度为,O(nn*n)