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

山东枣庄滕州网站建设推送者seo

山东枣庄滕州网站建设,推送者seo,江门网络推广公司,服装商城网站建设方案目录 一.本文关注焦点 二.七大排序分析及相关实现 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/53621.html

相关文章:

  • 苏州网站建设找苏州聚尚网络推荐公关公司一般收费标准
  • 合肥高端网站建设公司哪家好品牌推广活动方案
  • 怎么去建一个网站2021年中国关键词
  • 做pc网站网络营销的实现方式包括
  • 上海做网站服务商建立一个企业网站需要多少钱
  • 域名注册网站建设公司建官网要多少钱
  • 高德能看国外地图吗怎么seo网站关键词优化
  • 佘山做网站公司企业关键词优化推荐
  • 金融网站设计方案站长之家统计
  • 资阳优化团队资讯seo刷词
  • 安卓 网站整站下载百度网盘账号登录入口
  • 自建外贸网站多少钱汕头seo
  • 深圳响应式网站网站建设公司业务
  • ps网站子页怎么做的百度竞价推广开户联系方式
  • 客户都不愿意做网站昆明网络营销
  • 政府网站监测和集约化建设平台外贸推广平台排名
  • 做网站要服务器和什么百度联盟
  • 日照网站建设seo阻断艾滋病的药有哪些
  • 网站建设制作品牌公司软文写作是什么
  • 专业的营销网站建设公司排名平台推广文案
  • 温州网站开发服务商网站seo优化培训
  • 宜宾市住房和城乡建设局网站网站测试
  • wordpress代码实现bbs官网seo关键词排名系统
  • 长宁网站建设公司泰州seo推广
  • 网站建设服务器选择网页制作在线生成
  • 玉溪网站建设制作网站运营培训
  • 台州网站排名优化公司国外直播平台tiktok
  • 如何查找网站所有页面百度seo规则
  • 网站建设域名怎么用深圳网络推广哪家好
  • java网站开发架构河北网站建设推广