`
xiaoer_1982
  • 浏览: 1882333 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Job必备--常见排序的说明

阅读更多

名称

复杂度

说明

备注

冒泡排序
Bubble Sort

O(N*N)

将待排序的元素看作是竖着排列的 气泡 ,较小的元素比较轻,从而要往上浮

插入排序

Insertion sort

O(N*N)

逐一取出元素,在已经排序的元素序列中从后向前扫描,放到适当的位置

起初,已经排序的元素序列为空

选择排序

O(N*N)

首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此递归。

快速排序

Quick Sort

O(n *log2 (n))

先选择中间值,然后把比它小的放在左边,大的放在右边(具体的实现是从两边找,找到一对后交换)。然后对两边分别使用这个过程(递归)。

堆排序 Heap Sort

O(n *log2 (n))

利用堆( heaps )这种数据结构来构造的一种排序算法。堆是一个近似完全二叉树结构,并同时满足堆属性:即子节点的键值或索引总是小于(或者大于)它的父节点。

近似完全二叉树

希尔排

SHELL

O(n1+ )

0< <1

选择一个步长 (Step) , 然后按间隔为步长的单元进行排序 . 递归 , 步长逐渐变小 , 直至为 1.

箱排序
Bin Sort

O(n)

设置若干个箱子,把关键字等于 k 的记录全都装入到第 k 个箱子里 ( 分配 ) ,然后按序号依次将各非空的箱子首尾连接起来 ( 收集 )

分配排序的一种:通过 " 分配 " " 收集 " 过程来实现排序。

桶排序

Bucket Sort

O(n)

桶排序的思想是把 [0 1) 划分为 n 个大小相同的子区间,每一子区间是一个桶。

原文: http://free56.cn/post/22.html

分享到:
评论

相关推荐

    dictionary-of-java-job-keepers.rar_Keepers

    链表、数组、栈、队列、树、图等常见数据结构的操作,以及排序、查找等算法,都是面试中常见的考点。掌握它们能让你在处理复杂问题时游刃有余。 Java集合框架是另一个重要的面试主题,包括List、Set、Map接口及其...

    oracle 基础知识总结初学者必备

    ### Oracle基础知识总结初学者必备 Oracle数据库作为一款广泛使用的数据库管理系统,在企业和开发领域扮演着重要的角色。对于初学者而言,掌握其基础知识是非常必要的。本文将根据提供的内容进行深入解析,并结合...

    超全大数据面试宝典-大数据面试有这套就够了.pdf

    手写代码章节详细介绍了常见的算法和数据结构的实现,如冒泡排序、二分查找、快速排序、归并排序、二叉树以及基于Scala的Spark-WordCount实现。这些算法是面试中考察算法能力的常见问题,掌握这些算法对于通过技术...

    找工作必备,面试题 笔试题

    2. 数据结构与算法:数组、链表、树、图、栈、队列、哈希表、排序算法(快速排序、归并排序、冒泡排序等)和查找算法(二分查找、哈希查找等)。 3. 操作系统:进程与线程、内存管理、I/O模型、死锁等。 4. 计算机...

    job4j_design

    在Java编程领域,设计模式是软件开发人员的必备知识,它代表了最佳的实践,是解决常见问题的经验总结。Job4J设计模式教程是一个专注于Java设计模式的学习资源,它以项目实战的方式帮助开发者理解和应用各种设计模式...

    大数据高频面试题.docx

    - Linux常用命令:如ls、cd、mkdir、rm、cp、mv等,这些都是Linux系统中基础且常用的管理命令,对于大数据工程师来说是必备技能。 - Shell常用工具:如awk、sed、grep、bash脚本等,这些工具在处理日志、数据转换、...

    job4j_dreamjob

    2. **数据结构与算法**:在"job4j_dreamjob"中,你会遇到数组、链表、栈、队列、树等常见数据结构,以及排序、查找等经典算法。这些知识是提升编程效率和解决问题的关键。 3. **集合框架**:Java集合框架是程序设计...

    SQL高级查询案例[归纳].pdf

    SQL 高级查询案例是数据库查询的核心部分,掌握高级查询技巧是数据库开发和管理的必备技能。本文将详细介绍 SQL 高级查询案例,包括子查询、内联视图、条件查询、排序和分组等多个方面。 一、子查询 子查询是 SQL ...

    Programming Interviews Exposed 3rd Edition

    ”说明了这本书的主旨在于为读者提供有效的面试技巧,通过提升面试能力来成功获得理想的工作机会。 标签:“Coding Interview 面试 编程 工作”,这些标签直接点明了本书的核心内容和读者群体,主要针对编程面试中...

    kettle使用手册及培训手册大全-教程

    用户可以通过选择合适的输入步骤读取数据,通过转换步骤(如过滤、排序、合并等)处理数据,最后通过输出步骤将结果写入目标系统。 7. **插件扩展**:Kettle拥有丰富的插件库,可以扩展其功能以满足特定需求。用户...

    史上最全的大数据面试题,大数据开发者必看.docx

    - **Hive优化**:包括排序优化(如使用sort by而非order by)、分区优化、减少job和task数量、解决数据倾斜问题、小文件合并以及使用UDF和UDAF等。 3. **HBase存储与优化**: - **RowKey设计**:RowKey是HBase中...

    jcl语言教程

    此外,IBM大型机提供了大量的实用程序,如IEFBR14、IEBCOMPR、IEBCOPY、DFSORT等,用于数据转换、压缩、排序等常见数据处理任务。掌握这些实用程序的使用方法,可以大大提高数据处理的效率和准确性。 #### 结论 ...

    实用的计算机专业英文词汇

    计算机专业英文词汇是每个IT从业者必备的基础知识,它涵盖了编程、数据结构、算法、网络、数据库等多个领域。以下是一些核心概念的详细说明: 1. **Data Structures**(基本数据结构):数据结构是组织和存储数据的...

    mysql代码-mysql 测试脚本

    这些脚本可能还涉及到索引的创建与优化,视图的定义,触发器的应用,以及存储过程和函数的编写,这些都是MySQL数据库中常见的高级特性。 创建数据库的SQL语句通常以`CREATE DATABASE`开头,如`CREATE DATABASE mydb...

    PHPWEB21种模块打包

    此模块通常包括新闻分类、添加编辑新闻、时间线排序、搜索和评论等功能,是网站内容更新和信息传递的重要部分。 2. **product**:产品模块,用于展示和管理商品或服务。该模块支持商品分类、详情展示、价格管理、...

Global site tag (gtag.js) - Google Analytics