希尔排序法,最坏情况需要几次比较?

作者&投稿:单仪 (若有异议请与网页底部的电邮联系)
在最坏的情况下,希尔排序法(shell sort)所需要的比较次数为 O(n^1.5) 其中O代表什么?~

O的意思 就是 一个数量级.....一个把问题简化的方法 比如20000*(n) 也可以用O代替
当计算量大到一定程度 这个O 就是20000 就已经没有啥作用了 ,他的数的大小可以忽略 就像N*N*N+1000000000当N大到一定程度 这既是是 那么多0的数 都显得微不足道

O表示主部 用来比较数量级

希尔排序法,最坏情况下需要比较O(n^1.5)次

堆排序法,最坏情况需要O(nlog(2)(n))次

快速排序法,最坏情况需n(n-1)/2次

将整个无序序列分割成若干小的子序列分别进行插入排序。

序列分割方法:将相隔某个增量h的元素构成一个子序列。在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序,排序就完成。增量序列一般采用:ht=2t-1,1≤t≤[log2n],其中n为待排序序列的长度。

扩展资料:

在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点,并且对插入下一个数没有提供任何帮助。如果比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。

D.L.shell于1959年在以他名字命名的排序算法中实现了这一思想。算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d,对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。

参考资料来源:百度百科-希尔排序法



希尔排序法,最坏情况下需要比较O(n^1.5)次;
堆排序法,最坏情况需要O(nlog(2)(n))次;
快速排序法,最坏情况需n(n-1)/2次

希尔排序法,最坏情况O(n^1.5)
堆排序法,最坏情况需要O(nlog(2)(n))
快速排序法,最坏情况需要O(n^2)


选择类排序法算法
在对简单选择排序算法进行分析时,我们发现其关键特性在于移动记录的效率。在理想情况下,当待排序的记录已经按照升序排列时,排序过程几乎不需要移动任何记录,这是它的优点所在。然而,当数据初始状态是逆序排列时,移动次数最多可达 n-1 次,这是算法的最坏情况。选择排序的另一个特点是,它进行比较的...

公共基础知识复习指导~
最坏情况需要n(n-1)\/2次比较;(2)堆排序法,最坏情况需要O(nlog2n)次比较。第二章程序设计基础2.1 程序设计设计方法和风格如何形成良好的程序设计风格1、源程序文档化; 2、数据说明的方法;3、语句的结构; 4、输入和输出。注释分序言性注释和功能性注释,语句结构清晰第一、效率第二。2.2 结构化程序设计结构...

排序检验法的技术要点有哪些
排序检验法的技术要点是将一系列样品按其某种特性或整体印象的顺序进行排列。该方法可用于确定不同原料、加工、处理、包装和储藏等条件对产品一个或多个感官指标强度水平的影响;或进一步进行精细感官观分析(如描述性分析)的预筛,也可以用于筛选、培训评价员。评价员同时接受三个或三个以上随机排列的样品...

求计算机二级公共基础知识部分的知识总结
★★ 希尔排序最坏情况下需要次比较【n1.5】。希尔排序属于【插入类排序法】。已知数据表A中每个元素距最终位置不远,为节省时间,应该采用的算法是【直接插入排序】。选择排序、插入排序、快速排序、归并排序中对内存要求最大的是【归并排序】。第二部分 软件工程基础 1、软件工程基本概念软件是包括【程序】、【数...

在快速排序, 堆排序,归并排序中 哪个是最稳定的排序方法?
而且,最重要的是,这样算法也需要较多的存储空间。9 总结 下面是一个总的表格,大致总结了我们常见的所有的排序算法的特点。排序法 平均时间 最差情形 稳定度 额外空间 备注 冒泡 O(n2) O(n2) 稳定 O(1) n小时较好 交换 O(n2) O(n2) 不稳定 O(1) n小时较好 选择 O(n2) O(n...

请高手看看这副塔罗牌,高分在线等~~~(满意加200分)
韦特牌(Rider-Waite),目前世界上最专业、最通行的塔罗牌,由古代著名塔罗社团“金色曙光”成员A.E.韦特精心设计而成,图案古朴神秘,具有超强的预测能力。在古代,塔罗牌有着属于它们自己的秘密社团。韦特就是著名的“金色曙光”社团中一位颇有影响的成中,他所设计的塔罗牌一经问世即受到了专业人士的如潮好评,并逐渐...

shell排序法是怎么实现
Shell排序的时间性能优于直接插入排序 希尔排序的时间性能优于直接插入排序的原因:①当文件初态基本有序时直接插入排序所需的比较和移动次数均较少。②当n值较小时,n和n^2的差别也较小,即直接插入排序的最好时间复杂度O(n)和最坏时间复杂度0(n^2)差别不大。③在希尔排序开始时增量较大,分...

员工绩效考核的方法有哪些
详情请查看视频回答

冒泡排序法
include<stdio.h> void main(){ int a[10];int i,j,t;printf("input 10 numbers:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<9;j++) \/*进行9次循环 实现9趟比较*\/ for(i=0;i<9-j;i++) \/*在每一趟中进行9-j次比较*\/ if(a[i]>a[i+1]) \/*相邻两...

求北邮 数据结构期末考试试题
14.任何一个基于“比较”的内部排序的算法,若对6个元素进行排序,则在最坏情况下所需的比较次数至少为 。 A.10 B.11 C .21 D.36n 参考答案 A四、模拟试题1.二叉树的前序、中序和后序遍历法最适合采用 (1) 来实现。查找树中,由根结点到所有其它结点的路径长度的总和称为 (2) ,而使上述路径长度总和...

麒麟区15390527062: 希尔排序法,最坏情况需要几次比较?堆排序法,最坏情况需要几次比较?快速排序法,最坏情况需要几次比较? -
佼衬锋塞:[答案] 希尔排序法,最坏情况下需要比较O(n^1.5)次; 堆排序法,最坏情况需要O(nlog(2)(n))次; 快速排序法,最坏情况需n(n-1)/2次

麒麟区15390527062: 在最坏的情况下,希尔排序法(shell sort)所需要的比较次数为 O(n1.5),这里的O表示什么意思,举例说明! -
佼衬锋塞: O(n)

麒麟区15390527062: 在最坏的情况下,希尔排序法(shell sort)所需要的比较次数为 O(n1.5) -
佼衬锋塞: O表示主部 用来比较数量级

麒麟区15390527062: 希尔排序法属于哪一类型的排序法? -
佼衬锋塞: (1)交换类排序法交换类排序法是指借助数据元素之间的互相交换进行排序的一种方法.冒泡排序法与快速排序法都属于交换类排序方法.冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序.假设线...

麒麟区15390527062: 二级C语言排序技术2 -
佼衬锋塞: (1)交换类排序法交换类排序法是指借助数据元素之间的互相交换进行排序的一种方法.冒泡排序法与快速排序法都属于交换类排序方法.冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序.假设线...

麒麟区15390527062: 有关排序最少/最坏情况执行的次数 -
佼衬锋塞: 二分法插入排序 最好 nlog2n 最坏n^2 冒泡排序和选择排序 最好最坏都是 n^2 快速排序 最好是 nlog2n 最坏n^2 希尔排序很难说主要依据你选择的增量 但最坏一定是n^2 归并排序 最好最坏都是n^2

麒麟区15390527062: 快速排序和冒泡排序、选择排序、希尔法排序的最坏结果各是几次??
佼衬锋塞: n*n n*n n*n n的1.5次方 选择排序的交换操作介于0和(n − 1)次之间.选择排序的比较操作为n(n − 1) / 2次之间.选择排序的赋值操作介于0和3(n − 1)次之间. 比较次数O(n^2),比较次数与关键字的初始状态无关,总的比较次数N=(n-1)+(n-2)+...+1=n*(n-1)/2. 交换次数O(n),最好情况是,已经有序,交换0次;最坏情况是,逆序,交换n-1次. 交换次数比冒泡排序少多了,由于交换所需CPU时间比比较所需的CPU时间多,n值较小时,选择排序比冒泡排序快. 快排有时不是最快的哦

麒麟区15390527062: 排序技术中 冒泡法和快速排序法的最坏情况下的比较次数是多少 其时间复杂度分别是多少 -
佼衬锋塞: 冒泡和快排最坏情况下比较次数是一样的: 1+2+3+...+(n-1) 时间复杂度: 插入,冒泡,选择:O(n^2) 希尔:O(n^1.2) 快排,堆排:O(nlogn)

麒麟区15390527062: O(n1.5)与O(nlog2n)中的O是什么意思? -
佼衬锋塞: 代表不超过括号内数值的最大整数值.

麒麟区15390527062: 快速排序算法排序随机的一亿个数最好和最坏的情况分别要计算多少次 -
佼衬锋塞: 快排最好nlogn,最坏n*n.将n=100000000带进去 大致是最好26.57亿,最坏1亿亿.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网