一种新的快速排序算法地研究.pdfVIP

  • 8
  • 0
  • 约2.7千字
  • 约 2页
  • 2017-08-15 发布于安徽
  • 举报
重璺查堂堂塑 一—— 一种新的快速排序算法的研究 Onthe Sort QuickAlgorithm Non—comparative 江华。 (韶关学院计算机系,广东韶关512005) 本文提出的非比较分段快速排序算法不但可对无符号整数进行排序,稍加改变,还可对有符号整数和实型数据进 行排序。理论分析和上机测试均表明:算法时间复杂度为O(N),附加存储空间仅为256·11(n为数据的字节宽),在 数据量大的情况下,其性能远远优于QuickSort算法。 1无符号整数非比较分段排序思想(简称NCSS) 节信息对数据进行统计和重排处理。 对应BO字节所表示的无符号数据值。分段整理后,段阃有序,段内无序。 对各个一级子段中的数据根据B1字节信息进行分段整理。每一个一级子段又可分为256个二级子段。 持续上述分段整理工作,直到用Bn-I字节信息将每个n.I级子段分为256个n级子段时,由于n级子段的段间 距为1,因此整个排序工作结束。 整个排序的过程是一个递归的分段整理过程。 2有符号整数非比较分段排序思想(简称SNCSS) 在计算机中,有符号整型数据是以补码的形式存储并参与各种运算。根据补码定义可知,当整数A和整数B同 为正数或负数,且无符号整数C和D的二进制代码分别与A和B的补码相一致时,只要AB成立,则必有CD成 立;但如果A、B异号时,当AB,则有CD成立。根据这一性质,对NCSS算法进行一些修改,即可适合于有符 号整型数据的排序。具体修改如下: 如果是按由小到大的顺序排列数据,则在第一步根据数据的高八位二进制信息进行分段整理时,将负数所对应的 一级子段段号安排在O一127之间,正数所对应的一级子段段号安排在128--255之间。接下来的步骤与NCSS同。 3实型数据非比较分段排序思想(简称RNCSS) 对于一个给定长度的=进制代码序列d,如果按无符号整数进行解释,则是一个一一对应的关系。记为: rg(d)。如果按实型数据进行解释,则也是一种一~对应的关系,记 r业标准。根据IEEE754 为:x=h(d)。两者合并,记为:尸坟x)。PC机中的实型数据编码格式采用的是IEEE754 区间『0,+∞)上单调递增。如果xl∈(一∞,0),x2仨【0,+∞),则有yly2。 RNCSS算法首先将待排序的实型数据通过映射关系f映射到无符号整数集上,形成数列A;然后采用NCSS算 法对数列A中的数据进行排序,形成数列B;再用f的逆映射将数列B中的数据映射回实型数据集中,形成数列C; 最后利用映射关系f所确定的单调区间和单调增/减特性对数列C中的数据进行调整。 通过NCSS算法进行排序后,数据是按照Y非降序排列,段号为0-127的一级子段上的数据对应的x≥0,段号 作者简介:江华(1970一)-男·湖南醴陵人,韶关学院计算机系讲师、高级程序员,华南理工大学硕士生,主研领 域:算法设计与软件工程。 2003年全国理论计算机科学学术年会论文集 为128~255的一级子段中的数据对应的xO。 调整的方法是将段号为128-255的一级子段中的数据反序存放后.调整到整个数据序列的低端;段号为0-127 的~级予段的数据顺序调整到整个数据序列的商端,最后得到结果数据序列。 4算法分析 字节宽度有关.而与数据规模N无关,因此加上存放待排序数据的线性表空间,算法的空间度是O(N)。 若在NCSS算法中,取下列几个基本操作: 对一个数据进行统计的时间为tl 计算一个子段的起始位置的时间为t2 移动一个数据到对应的位置上的时间为t3 若对n个数据进行一次分段操作,则时间耗费函数为: (4】) T(n)=n*tl+256+t2+

文档评论(0)

1亿VIP精品文档

相关文档