资讯专栏INFORMATION COLUMN

Java数据结构与算法——排序(基础概念)

jzzlee / 678人阅读

摘要:排序算法索引待更数据结构与算法桶排序数据结构与算法快速排序时间复杂度算法的时间复杂度是一个函数,其定量的描述了一个算法运行时间和输入规模之间的关系。总结在介绍排序算法之前,本篇先对后面排序算法的基本概念说叨说叨,打下一个基础铺垫。

声明:码字不易,转载请注明出处,欢迎文章下方讨论交流。

前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督。在介绍各类排序算法之前,本篇先聊聊算法中的一些必备知识。

0、排序算法索引(待更)

Java数据结构与算法——桶排序
Java数据结构与算法——快速排序

1、时间复杂度

算法的时间复杂度是一个函数,其定量的描述了一个算法运行时间和输入规模之间的关系。通常用O表示,且不包括这个函数的低阶和首项系数。如果一个算法的执行时间为2n^2+5n+4,那么该算法时间复杂度就可以表示为O(n^2)。

一般的时间复杂度,由好到坏大概有这么几种O(1)、O(logn)、O(n)、O(nlogn)、O(n^k)(k>=2),一般情况下,当算法时间复杂度高于O(n^2)时,性能就变得相当差,此时就该想办法寻求更优的方案。

O(n^2)的情形
    for(int i=0;i
O(nlogn)的情形
    for(int i=0;i
O(logn)的情形
    for(int i=0;i
O(1)的情形
    //与n无关的有限次的表达式,例如赋值,简单的运算等
2、空间复杂度

空间复杂度是一个算法执行过程中所消耗的临时空间的一个度量。同时间复杂度一样,也不包括这个度量函数的低阶项和首项系数。相对的应的,空间复杂度也有O(1)、O(logn)、O(n)、O(nlogn)、O(n^k)(k>=2)。

3、稳定性

在排序算法中,评估一个算法的优劣,除了时间复杂度和空间复杂度以外,还有一个衡量指标就是稳定性。在一个待排序的序列中,可能存在多个相等的项,经过排序后如果这些项的相对次序保持不变,则我们说这个算法是稳定的,否则就是不稳定的。

研究稳定性的意义在于,如果算法是稳定的,那么第一个元素排序的结果可以被第二个等值的元素在排序时所用,也就是说可以避免多余的比较。

4、总结

在介绍排序算法之前,本篇先对后面排序算法的基本概念说叨说叨,打下一个基础铺垫。

排序算法索引(待更)
Java数据结构与算法——桶排序
Java数据结构与算法——快速排序
码字不易,如对您有帮助,欢迎点赞收藏打赏^_^

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71060.html

相关文章

  • Java面试题:稳定和不稳定排序算法之间的区别-MergeSortQuickSort

    摘要:稳定与不稳定算法示例以下图片解释了稳定和不稳定的排序是如何工作的这就是稳定和不稳定排序算法之间的区别。稳定排序算法的一些常见示例是合并排序,插入排序和冒泡排序。 showImg(https://segmentfault.com/img/remote/1460000018913243); 来源 | 愿码(ChainDesk.CN)内容编辑 愿码Slogan | 连接每个程序员的故事 网...

    wanghui 评论0 收藏0
  • SegmentFault 技术周刊 Vol.31 - 码农也要学算法

    摘要:记作称为算法的渐进时间复杂度,简称时间复杂度。学习数据结构与算法之链表链表一种常见的数据结构,可以存储有序的元素集合。首先在大的分类上,它们都是散列算法。 showImg(https://segmentfault.com/img/bVSDvj?w=900&h=385); 当人工智能、AlphaGo、无人驾驶、智能投顾等词语不断在人们视野中出现的时候,意味着我们正步入一个算法的时代。计算...

    cgspine 评论0 收藏0
  • 博客 - 收藏集 - 掘金

    摘要:技术之类加载机制掘金类加载机制是语言的一大亮点,使得类可以被动态加载到虚拟机中。玩转仿探探卡片式滑动效果掘金讲起本篇博客的历史起源,估计有一段历史了。 Java 技术之类加载机制 - Android - 掘金类加载机制是 Java 语言的一大亮点,使得 Java 类可以被动态加载到 Java 虚拟机中。 这次我们抛开术语和概念,从例子入手,由浅入深地讲解 Java 的类加载机制。 本文...

    Shimmer 评论0 收藏0
  • 博客 - 收藏集 - 掘金

    摘要:技术之类加载机制掘金类加载机制是语言的一大亮点,使得类可以被动态加载到虚拟机中。玩转仿探探卡片式滑动效果掘金讲起本篇博客的历史起源,估计有一段历史了。 Java 技术之类加载机制 - Android - 掘金类加载机制是 Java 语言的一大亮点,使得 Java 类可以被动态加载到 Java 虚拟机中。 这次我们抛开术语和概念,从例子入手,由浅入深地讲解 Java 的类加载机制。 本文...

    The question 评论0 收藏0
  • Javag工程师成神之路(2019正式版)

    摘要:结构型模式适配器模式桥接模式装饰模式组合模式外观模式享元模式代理模式。行为型模式模版方法模式命令模式迭代器模式观察者模式中介者模式备忘录模式解释器模式模式状态模式策略模式职责链模式责任链模式访问者模式。 主要版本 更新时间 备注 v1.0 2015-08-01 首次发布 v1.1 2018-03-12 增加新技术知识、完善知识体系 v2.0 2019-02-19 结构...

    Olivia 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<