暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

关于排序与其逆排序的一个证明

原创 Halo Tech 2023-10-24
160

    基于同一组数据使用数据库管理系统排序方法,首先对不同列进行不同排序操作,其次对不同列执行与前者相反排序操作,验证前者与后者逆序相同。

    问题:基于同一组数据SORT(ID1 DESC, ID2 ASC, ID3 DESC)与SORT(ID1 ASC, ID2 DESC, ID3 ASC)逆序相同,其中SORT()表示数据库管理系统的排序用法,DESC表示对返回数据降序排序,ASC表示对返回数据升序排序。

    证:设P(x,y,z)为命题“SORT(ID1 DESC, ID2 ASC, ID3 DESC)与SORT(ID1 ASC, ID2 DESC, ID3 ASC)逆序相同”待排序数据中每条数据包含3个元素定义为(x_i,y_i,z_i),其中i∈[1,n]表示每条数据所在行数。每行的3个数据元素组成一体且具有不变性,遵循x, y, z三列不同排序规则并按先后顺序进行排序。

 (1)当待排序数据中无重复数据元素

    假定SORT[DESC(x_1 ),ASC(y_1 ),DESC(z_1)] = SORT[DESC(x_n ),ASC(y_n ),DESC(z_n)],排序过程中遵循x, y, z三列排序规则,基于同一行数据元素核心组成不变性,推出:

    SORT[DESC(x_i ),ASC(y_i ),DESC(z_i)] = SORT[DESC(x_(n-i) ),ASC(y_(n-i) ),DESC(z_(n-i))]

    依次循环,证明P(x,y,z)成立。

(2)当待排序数据内每行包含不同位置的重复数据元素

    当x列待排数据内存在重复数据元素,x列数据元素可分为重复和非重复两部分,依据x列行数设定,y列在x列非重复行数范围内符合(1)中结论,因此P(x,y,z)成立。

    基于同一行数据元素核心组成不变性,y列基于同位置x列重复数据元素行数范围内,其重复部分位置范围为[i,i+x]其中x∈[0,n-i],则y列可排序数据元素为y_i至y_(i+x)部分,且此部分遵循y列排序规则,完成排序后可推出,

    SORT[DESC(x_i ),ASC(y_i )] = SORT[DESC(x_(i+x) ),ASC(y_(i+x) )]

    依次循环,证明P(x,y)成立。

    当x列和y列包含重复数据元素部分,z列基于a)中结论,假设y列重复数据元素部分行数范围为[i,i+y]其中y∈[0,x]则z列可排序数为z_i至z_(i+y)部分,且此部分遵循z列排序规则,完成排序后可推出,

    SORT[DESC(x_i ),ASC(y_i ),DESC(z_i)] = SORT[DESC(x_(i+y) ),ASC(y_(i+y) ),DESC(z_(i+y))]

    依次循环,证明P(x,y,z)成立。

    由(1)(2)可知上述命题成立。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论