名称
|
复杂度
|
说明
|
备注
|
冒泡排序
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
分享到:
相关推荐
链表、数组、栈、队列、树、图等常见数据结构的操作,以及排序、查找等算法,都是面试中常见的考点。掌握它们能让你在处理复杂问题时游刃有余。 Java集合框架是另一个重要的面试主题,包括List、Set、Map接口及其...
### Oracle基础知识总结初学者必备 Oracle数据库作为一款广泛使用的数据库管理系统,在企业和开发领域扮演着重要的角色。对于初学者而言,掌握其基础知识是非常必要的。本文将根据提供的内容进行深入解析,并结合...
手写代码章节详细介绍了常见的算法和数据结构的实现,如冒泡排序、二分查找、快速排序、归并排序、二叉树以及基于Scala的Spark-WordCount实现。这些算法是面试中考察算法能力的常见问题,掌握这些算法对于通过技术...
2. 数据结构与算法:数组、链表、树、图、栈、队列、哈希表、排序算法(快速排序、归并排序、冒泡排序等)和查找算法(二分查找、哈希查找等)。 3. 操作系统:进程与线程、内存管理、I/O模型、死锁等。 4. 计算机...
在Java编程领域,设计模式是软件开发人员的必备知识,它代表了最佳的实践,是解决常见问题的经验总结。Job4J设计模式教程是一个专注于Java设计模式的学习资源,它以项目实战的方式帮助开发者理解和应用各种设计模式...
- Linux常用命令:如ls、cd、mkdir、rm、cp、mv等,这些都是Linux系统中基础且常用的管理命令,对于大数据工程师来说是必备技能。 - Shell常用工具:如awk、sed、grep、bash脚本等,这些工具在处理日志、数据转换、...
2. **数据结构与算法**:在"job4j_dreamjob"中,你会遇到数组、链表、栈、队列、树等常见数据结构,以及排序、查找等经典算法。这些知识是提升编程效率和解决问题的关键。 3. **集合框架**:Java集合框架是程序设计...
SQL 高级查询案例是数据库查询的核心部分,掌握高级查询技巧是数据库开发和管理的必备技能。本文将详细介绍 SQL 高级查询案例,包括子查询、内联视图、条件查询、排序和分组等多个方面。 一、子查询 子查询是 SQL ...
”说明了这本书的主旨在于为读者提供有效的面试技巧,通过提升面试能力来成功获得理想的工作机会。 标签:“Coding Interview 面试 编程 工作”,这些标签直接点明了本书的核心内容和读者群体,主要针对编程面试中...
用户可以通过选择合适的输入步骤读取数据,通过转换步骤(如过滤、排序、合并等)处理数据,最后通过输出步骤将结果写入目标系统。 7. **插件扩展**:Kettle拥有丰富的插件库,可以扩展其功能以满足特定需求。用户...
- **Hive优化**:包括排序优化(如使用sort by而非order by)、分区优化、减少job和task数量、解决数据倾斜问题、小文件合并以及使用UDF和UDAF等。 3. **HBase存储与优化**: - **RowKey设计**:RowKey是HBase中...
此外,IBM大型机提供了大量的实用程序,如IEFBR14、IEBCOMPR、IEBCOPY、DFSORT等,用于数据转换、压缩、排序等常见数据处理任务。掌握这些实用程序的使用方法,可以大大提高数据处理的效率和准确性。 #### 结论 ...
计算机专业英文词汇是每个IT从业者必备的基础知识,它涵盖了编程、数据结构、算法、网络、数据库等多个领域。以下是一些核心概念的详细说明: 1. **Data Structures**(基本数据结构):数据结构是组织和存储数据的...
这些脚本可能还涉及到索引的创建与优化,视图的定义,触发器的应用,以及存储过程和函数的编写,这些都是MySQL数据库中常见的高级特性。 创建数据库的SQL语句通常以`CREATE DATABASE`开头,如`CREATE DATABASE mydb...
此模块通常包括新闻分类、添加编辑新闻、时间线排序、搜索和评论等功能,是网站内容更新和信息传递的重要部分。 2. **product**:产品模块,用于展示和管理商品或服务。该模块支持商品分类、详情展示、价格管理、...