当前位置: 首页 > wzjs >正文

山东枣庄滕州网站建设seo页面排名优化

山东枣庄滕州网站建设,seo页面排名优化,装修免费咨询平台,wordpress花园网站目录 一.本文关注焦点 二.七大排序分析及相关实现 1.冒泡排序 2.简单选择排序 3.直接插入排序 4.希尔排序 5.堆排序 ​编辑 6.归并排序 7.快速排序 附录:排序对比 一.本文关注焦点 各种排序的代码实现及各自的时间空间复杂度分析及稳定性。 时间复杂度…

目录

一.本文关注焦点

二.七大排序分析及相关实现

1.冒泡排序

2.简单选择排序 

3.直接插入排序

4.希尔排序

5.堆排序

​编辑

6.归并排序

7.快速排序

附录:排序对比


一.本文关注焦点

各种排序的代码实现及各自的时间空间复杂度分析及稳定性。

时间复杂度:在比较排序中主要指排序中两数比较交换次数

空间复杂度:在比较排序中指除原来存储数据开辟的空间外在排序过程又开辟的其它空间

时间复杂与空间复杂度计算自行学习:
时间复杂度和空间复杂度(超详细)-CSDN博客

稳定性:指排序过程中数据的相对位置是否发生改变

介绍如下图:

当前未排序时黑色5在红色5之前,若排序后黑5仍然在红5之前,即二者的相对位置未发生改变,则该排序稳定,否则称该排序不稳定。

需要注意的是:稳定排序可更改为不稳定排序,而不稳定排序一定是不稳定排序 

二.七大排序分析及相关实现

1.冒泡排序

冒泡排序动图:

https://i-blog.csdnimg.cn/direct/068c355a675c4d16918587bbab62ea53.gif

此冒泡排序还能继续进行优化 

空间复杂度分析:除为存储数组开辟空间外,在排序过程中只开辟一个辅助空间因此为O(1)。

时间复杂度: 

最坏:

将内外循环完全进行

最好:

序列已经有序经优化后只进行一趟比较可达O(n).

稳定性: 稳定

交换时等于并未进行交换,保持了数据的相对位置不变。

2.简单选择排序 

动图:

https://i-blog.csdnimg.cn/blog_migrate/e6eeb7ba10b2d32e4f3fb4efa470e01e.gif

空间复杂度:除存放数据数组外排序过程只开辟minIndex用来记录最小下标所以为O(1)。

时间复杂度:

最坏:

(n-1)+(n-2)+........+1 = n^2/2所以为O(n^2);

最好:

及时数据有序仍然需要进行比较所以仍然为O(n^2);

稳定性:稳定

此处比较不是<= 确保排序的稳定

3.直接插入排序

直接插入排序动图演示:
https://i-blog.csdnimg.cn/direct/5245b6cc9d6345398db1515e31632477.gif#pic_center

空间复杂度:除存储数组本身数据外只取一tamp空间所以为O(1)

时间复杂度:

最坏:

逆序时每次排序都要与有序区间数字全部比较一遍。

1+2+3+......+(n-2)+(n-1)=n^2/2所以复杂度为O(n^2) 

最好:

已经有序时

每次排序只需比较一次

1+1+1+...+1 = n-1所以为O(n)

稳定性:稳定

此处为>,不会使相同元素的相对位置发生改变。

4.希尔排序

希尔排序动图:

https://i-blog.csdnimg.cn/blog_migrate/420f5c5abac4bb459aaee2f95aaaf35f.gif

希尔排序可看做是直接插入排序的优化

空间复杂度: 

空间复杂度:除存储数组本身数据外只取一tamp空间所以为O(1)

时间复杂度:通常为O(n^1.3)~O(n^2)

最坏:O(n^2)非常少见

最好:O(nlogn)

稳定性:不稳定

希尔排序为跳跃式分组排序,排序后相同元素相对位置可能发生改变

5.堆排序

堆排序动态演示:

https://i-blog.csdnimg.cn/direct/a94c12bdf4fe4e03bfdf54a9a5aca3fe.gif#pic_center

此处1314送给各位看官。。

空间复杂度:排序过程中除存储数组本身数据外不取其它额外空间所以为O(1)

时间复杂度:

最坏:O(nlogn)

最好:O(nlogn)

堆排序的时间复杂度只与创建堆与调整堆有关与数据顺序无关

创建堆时每个非叶子结点最多进行两次交换因此其时间复杂度为O(n)

排序时每次调整堆的时间复杂度为logn,需要调整n-1次所以时间复杂度为O(nlogn)

总体为(O(n+1)logn)也就是O(nlogn).

稳定性:不稳定

6.归并排序

动画演示:

https://i-blog.csdnimg.cn/direct/cc1443bd7a3348f39013f146a3c1f1ca.gif#pic_center

空间复杂度:除本身为存储数组开辟空间外,还需要开辟辅助空间tampArr最终长度为n,所以空间复杂度为O(n).

时间复杂度:

最坏:O(nlogn)

最好:O(nlogn)

因为归并排序递归分割过程相当于二叉树,树高计算为logn此时分割完成,合并阶段每层和并数组大小为m+n,则logn层可计算为O(nlogn).

稳定性:稳定

归并排序性能不受输入数据的影响且稳定,代价为空间。

7.快速排序

动态演示:

https://i-blog.csdnimg.cn/blog_migrate/88b8eb041f669690da648466be9d2ddb.gif

基本版本实现(挖坑法找基准):

Hoare法:

三数取中优化:

空间复杂度:只有递归调用栈占用空间

最坏:单分支数高度为n,所以复杂度为O(n).

最好:完全二叉树,树高为logn所以复杂度为O(logn)

时间复杂度:

最坏:单分支树,退化为冒泡排序O(n^2)

最好:完全二叉树树高为logn,每次需要比较两次要比较n次,所以时间复杂度为O(nlogn).

稳定性:不稳定

附录:排序对比

http://www.dtcms.com/wzjs/226812.html

相关文章:

  • 网站建设找云尚网络济南做seo外包
  • 科技公司网站设计公司深圳网站制作推广
  • 太平保险网站黑帽seo教程
  • 怎么在别人网站做跳转百度怎样发布作品
  • 电子商务网站建设重点企业培训课程
  • 武汉 网站制作权威seo技术
  • 品牌网站建设哪家公司好网络推广外包公司哪家好
  • 制作企业网站是免费的吗百度提交网站入口
  • 做电影网站收入广告营销案例分析
  • 温州网页设计美工外贸网站谷歌seo
  • 建设网站软文推广多少钱一篇
  • 福田做商城网站建设哪家便宜免费网站外链推广
  • 设计网站汇总百度网站介绍
  • 网站分析报告网页制作软件
  • 无锡高端网站建设咨询软件测试培训
  • 集团网站建设网络公司一手项目对接app平台
  • 如何在路由器上做网站转跳东莞市网络seo推广企业
  • 做网站可以不写代码宁德市疫情
  • wordpress修改首页名称河北百度推广seo
  • 古交网站建设北京seo助理
  • 什么公司做企业网站百度推广开户2400
  • 怎么用路由器做网站crm管理系统
  • 网站建设情况登记表广告投放优化师
  • 有哪些网站是用php做的百度账户托管运营
  • 东风地区网站建设关键词指数
  • 网站颜色背景代码提高工作效率的方法不正确的是
  • 长春做网站的公司有哪些百度地图导航2021最新版
  • 哪家卖的wordpress主题好欧美seo查询
  • iis新建网站无法浏览今天发生了什么重大新闻
  • 济南 营销型网站建设百度关键词快排