首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 531 毫秒
1.
快速排序在数据部分相等或有序时,时间复杂度最坏为O(n2)。针对于任意类型的分类数据的排序,文章在快速排序的基础上,提出一种新的排序算法,具有快速排序算法的简洁性,但是不使用递归算法,时间复杂度为O(n),空间复杂度为O(1)。通过理论分析和实验表明,该算法的性能明显优于其它排序算法,特别适合于数据量大的场合。  相似文献   

2.
深度优先稳定原地归并排序的高效算法   总被引:1,自引:0,他引:1  
白宇  郭显娥 《计算机应用》2013,33(4):1039-1042
基于分治策略,使用深度优先的方法,提出了一种用于线性表的稳定原地归并排序算法,其时间复杂度为O(n lb n),辅助空间复杂度为O(1),递归栈空间复杂度为O(lb n),同时进行了算法分析和实验测试。实验结果表明,该算法效率较STL中的稳定原地归并排序算法有67.51%的提升,解决了稳定排序算法中要么时间复杂度高要么空间复杂度高的问题。  相似文献   

3.
本文给出了一种对关键字在特定范围内的数据记录不用进行数据的比较交换的快速排序算法、算法思想、算法描述、时间复杂度及空间复杂度分析,并用C++语言编写程序进行算法比较。结果表明:在关键字范围远远小于记录数的情况下,此算法的时间复杂度仅为O(n),并且明显优于其他排序算法。  相似文献   

4.
变换存储结构的一种高效排序算法   总被引:2,自引:0,他引:2  
给出变换存储结构的一种高效排序算法 ,该算法的时间复杂度为 O(n) ,且与待排序数据的分布无关 .给出了该排序算法的描述 ,并在时间复杂度和空间复杂度两方面与其他排序算法作了比较  相似文献   

5.
单向链表广泛应用于动态存储结构,当前单向链表的排序算法普遍效率偏低,而平均效率最高的快速排序算法并不适用于单向链表。基于分治策略,使用递归方法,通过重新链接单向链表节点,提出了用于单向链表的快速排序算法,其平均时间复杂度为O(nlog2n),辅助空间复杂度为O(0),平均递归栈空间复杂度为O(log2n);同时,进行了算法分析和实验测试,其效率较其它单向链表排序算法有较大提高,且较传统基于线性表的快速排序算法也有一定提高。研究结果解决了当前单向链表排序效率较低的  相似文献   

6.
单向链表快速排序算法   总被引:2,自引:0,他引:2  
单向链表广泛应用于动态存储结构,当前单向链表的排序算法普遍效率偏低,而平均效率最高的快速排序算法并不适用于单向链表。基于分治策略,使用递归方法,通过重新链接单向链表节点,提出了用于单向链表的快速排序算法,其平均时间复杂度为O(nlog2n),辅助空间复杂度为O(0),平均递归栈空间复杂度为O(log2n);同时,进行了算法分析和实验测试,其效率较其它单向链表排序算法有较大提高,且较传统基于线性表的快速排序算法也有一定提高。研究结果解决了当前单向链表排序效率较低的问题。  相似文献   

7.
众所周知,排序速度的快慢,取决于排序算法的时间复杂度和空间复杂度。因而,排序算法设计的主导思想,就是要千方百计降低算法的时间复杂度和空间复杂度。虽然计算机硬件的运算速度越来越快,但排序算法的研究仍是算法理论中的一个重要课题。已有的排序算法很多,在所有基于“记录关键字之间比较”的排序方法中,快速排序(quick sort)是平均时间性能最好的一种方法,平均时间为O(n*log n)。但是在最坏情况下,时间复杂度却很高,为O(n^2)。  相似文献   

8.
介绍一种链式存储的逐步归并排序算法,其最佳时间复杂度为O(n),空间复杂度为O(1).  相似文献   

9.
第一题《食物链(eat)》解题报告 摘要 算法# 算法1 算法2 时间复杂度 O(nlogn+m) O(mα(n+m,m)+n) 空间复杂度 O(n) O(n) 特殊数据结构 分离集合 分离集合 问题转述 给定某个含有n个元素的集合S,其中每个元素都具 有三种属性(A、B或C)中的一种,是根据已给出的各 个元素之间的相对关系集R来确定某两个元素之间的相对关系。 分析在读题之后我们可以简单地得出处理一条输入的流程 图如下:  相似文献   

10.
一种基于统计的排序算法   总被引:2,自引:0,他引:2  
本文提出了一种基于统计的快速排序算法 ,并对该算法的时间复杂度和空间复杂度进行了分析 .该算法要求排序关键字满足一定的约束条件 ,其时间复杂度为 O(n) .对该算法做一些简单的修改 ,还可以将其推广到对一般关键字的排序问题 .  相似文献   

11.
分“档”快速排序算法研究   总被引:3,自引:0,他引:3  
文章在文献[1]的基础上,提出了一种由分“档”、整体置换和局部快速排序所组成的新排序算法——分“档”快速排序法。算法分析和实验结果都表明:在待排序数据均匀分布或正态分布的情况下,分“档”快速排序算法的时间复杂度可以达到O(n),而附加存储空间开销却仅仅为[(n+1)/2],同时排序速度明显优于Quick Sort[2]、快速分组排序[5]、分“档”统计插入排序[1]和 Proportion  Split Sort[4]等算法。  相似文献   

12.
提出了一种对任意整数都适用的按位链接快速排序算法,其时间复杂性为O(n),只需附加2n 10k(其中k为待排序数组最大数的位数)个存储空间。  相似文献   

13.
一种新的分"档"置换插入排序算法   总被引:1,自引:0,他引:1  
近年来,人们提出了众多时间复杂度为O(n)的排序算法.但分析研究结果表明,上述排序方法都不同程度上存在着以下两点不足:(1)附加存储空间开销大,(2)排序效率过分依桢于关键字的均匀分布.基于此,表文提出了一种由分“档”、整体置换和局部直接插入排序所组成的新排序算法——分“档”置换插入排序法.算法分析和实验结果都表明:该排序方法与待排序数据分布无关,其时间复杂度为O(n),而附加存储空间开销少于0.5n,同时排序速度明显优于QuickSort、HeapSort、按字节桶分配链接排序、ProportionSplitSort等算法.  相似文献   

14.
均匀分布数据的分"档"统计插入排序算法研究   总被引:20,自引:0,他引:20  
1.引言 排序(sorting)是计算机程序设计中的一种重要运算,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个接关键字有序的序列.其精确定义如下: 设{Ai}=(A1,A2,…,AN)为一有限的数据集合,其中人是集合中的元素,又叫做记录.若 Ai的某个标识特征为 Ki,称凡为 Ai的关键字,又称为健或标识符.{Ai}也称为记录集合.所谓排序,就是依照集合中元素的关键宇特征,把元素排列顺序重新加以组织,使新的有序集合{Aj}对于任意的,有或. 由于排序是计算机科学中一项复杂而重要的技术,…  相似文献   

15.
本文首先把迷宫排序问题推广为m×n迷宫(m>1,n>1)的排序问题,证明了m×n迷宫的任一初始状态能经过有限步移动转变成目标状态的充要条件,然后给出了一个m×n迷宫排序的算法,该算法的时间复杂度是O(mn(m+n)),空间复杂度是O(mn).最后还指出了它的时间复杂度的一个下界.这样,关于迷宫排序问题就基本上得到了圆满地解决.  相似文献   

16.
We present four polylog-time parallel algorithms for matching parentheses on an exclusive-read and exclusive-write (EREW) parallel random-access machine (PRAM) model. These algorithms provide new insights into the parentheses-matching problem. The first algorithm has a time complexity of O(log2 n) employing O(n/(log n)) processors for an input string containing n parentheses. Although this algorithm is not cost-optimal, it is extremely simple to implement. The remaining three algorithms, which are based on a different approach, achieve O(log n) time complexity in each case, and represent successive improvements. The second algorithm requires O(n) processors and working space, and it is comparable to the first algorithm in its ease of implementation. The third algorithm uses O(n/(log n)) processors and O(n log n) space. Thus, it is cost-optimal, but uses extra space compared to the standard stack-based sequential algorithm. The last algorithm reduces the space complexity to O(n) while maintaining the same processor and time complexities. Compared to other existing time-optimal algorithms for the parentheses-matching problem that either employ extensive pipelining or use linked lists and comparable data structures, and employ sorting or a linked list ranking algorithm as subroutines, the last two algorithms have two distinct advantages. First, these algorithms employ arrays as their basic data structures, and second, they do not use any pipelining, sorting, or linked list ranking algorithms  相似文献   

17.
一种节省空间的排序算法   总被引:2,自引:0,他引:2  
目前报道的一些排序算法,空间复杂度都比较大.提出了一种改进其空间复杂度的方法,其特点是算法简单、稳定,时间复杂度为O(n^2),空间复杂度为2n,达到下界.与传统的排序算法用变量与变量比较的思路不同,本文提出的是一种用变量与其分布区间进行比较的新思路.本算法特别适合那些范围确定且分布基本均匀的待排数据,也适合一般数据对象的排序.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号