简单介绍排序算法

简介: 简单介绍排序算法

冒泡排序, 冒泡排序的时间复杂度为 o(n^2), 稳定性为 看判断是否有带=号,有的话,就不稳定,因为会交换位置,不加的话,就是稳定的。

快速排序



快速排序算法

1、时间复杂度是 nlogn  最坏的情况是 O(n^2)
2、空间复杂度:O(n)
3、稳定性:不稳定
4、快排和归并的对比:
(1)归并排序的处理过程是由下到上,先处理子问题,然后再合并。
(2)快排其实就是从上到下,先分区,在处理子问题,不用合并。
其优化就是优化基准数, 提供一个三个数中间的思路
排序名词
时间复杂度
是否稳定
额外空间开销
插入排序
O(n^2)
稳定
O(1)
冒泡排序
O(n^2) 稳定 O(1)
选择排序
O(n^2) 不稳定
O(1)
希尔排序
O(n^2) 不稳定 O(1)
归并排序
O(nlogn)
稳定
O(n)
快速排序
O(nlogn)
不稳定
O(1)


这么多排序,如何选择


1、分析场景:稳定 or 不稳定

2、数据量:数据量小的时候选什么?比如就50个数, 优选 插入(5000*5000 = 25000000)

3、分析空间:

综上所述:没有一个固定的排序算法, 都是根据情况分析的, 但是如果你不会分析的情况下, 选择归并或者快排

4、 C++ qsort  快排+插入排序

5、jdk 里面有个arrays.sort 一种是基础类型, int double 用的快排, 对象排序, 用到的是归并 + timeSort

目录
相关文章
|
3月前
|
搜索推荐 C++
7大排序算法C++实现
7大排序算法C++实现
34 0
|
3月前
|
存储 搜索推荐 算法
常见排序算法实现(一)
常见排序算法实现(一)
36 0
|
9月前
|
算法 搜索推荐 Java
常见排序算法详解(1)
前言 排序是我们在日常生活和工作中常见的一种操作。在计算机科学中,排序算法就是将一串或一组数据按照特定的顺序进行排列的算法。这些顺序可能是数字的升序或降序,也可能是字母或字词的字母顺序等。我们将探讨几种不同的排序算法,包括他们的原理、优缺点以及代码实现。
84 0
|
搜索推荐 Java
常见的10种排序算法
常见的10种排序算法
76 0
|
算法 搜索推荐 C++
|
搜索推荐 算法
|
搜索推荐 算法 测试技术
|
搜索推荐 程序员 C语言
常见的排序算法(上)
时间如流水,今天就到初阶数据结构最后一个知识章节了,常见的排序算法!在进入这期之前,程爱打篮球的程序猿想说一句,如果有不懂的地方可以反复观看我之前的内容,再还有不懂可以直接找我,帮你安排的妥妥的!
常见的排序算法(上)
|
搜索推荐
带你了解排序算法
带你了解排序算法
114 0
带你了解排序算法
|
搜索推荐
快排序算法(中)
快排序算法(中)
104 0
快排序算法(中)