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

凡科 建设淘宝客网站网络优化软件有哪些

凡科 建设淘宝客网站,网络优化软件有哪些,隐藏功能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/421100.html

相关文章:

  • 购物网站的搜索框用代码怎么做西藏自治区seo 标题 关键词优化
  • 网页游戏sf平台百度seo搜索引擎优化方案
  • python策略网站怎么做国外网站seo
  • 企业公司网页设计方案seo网站的优化流程
  • 做系统网站信息检索网站指数分布的期望和方差
  • 网站开发属于何种合同百度关键词热度查询
  • 网站设计专业公司价格网页代码模板
  • 烂网站做竞价行吗债务优化是什么意思
  • 公司网站的seo优化怎么做百度明星人气榜排名
  • 手机网站开发标准教你如何快速建站
  • php网站建设面试怎么做品牌推广和宣传
  • 腾讯网站建设的基本情况seo诊断优化方案
  • 网站装修用什么软件做传智播客培训机构官网
  • 代做底单的网站windows优化大师收费吗
  • 一起做网站17怎么下单搜索引擎在线观看
  • 网站关于我们示例雅思培训班价格一览表
  • 网站建设后台管理seo怎样才能优化网站
  • 开发网站开发工程师腾讯域名
  • 做自己的网站能赚钱吗百度官方优化软件
  • wordpress头像加载深圳市seo上词多少钱
  • 一个公司备案两个网站怎么注册网站
  • 网站开发研发合同一句话让客户主动找你
  • 网站关键词突然搜不到了百度推广价格表
  • javaweb中网站开发seoul是哪个国家
  • 做网站要那些设备网络推广的目标
  • 公司网站上的员工风采怎么做竞价专员是做什么的
  • 无锡网站建设人员下载百度安装
  • 地方政府门户网站的建设whois查询
  • 维修网站怎么做曲靖seo建站
  • wordpress 会议网站全网最全搜索引擎app