写点什么

排序算法

0 人感兴趣 · 61 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/69/69bca2cc1fe929d05dbf097b5328c91f.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 集合中的排序算法浅析

排序是一个Java开发者,在日常开发过程中随处可见的开发内容,Java中有丰富的API可以调用使用。本文主要探讨java中排序方法所使用的算法,以及那些是值得我们学习和借鉴的内容。文中如有理解和介绍的错误,一起学习,一起探讨,一起进步。

三种基本排序

选择排序:数据中有序子序列是0...i-1,无序子序列是i...n-1,从无序子序列中选择一个最小值并记录其下标,然后将此最小值单元和第i个单元交换,使得有序部分变长为0...i单元,依次重复此过程直至整个序列有序。

https://static001.geekbang.org/infoq/82/82107082bb39aaae87f52643cbb30bfd.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深度剖析“八大排序”(下)- 交换排序 | 快速排序 & 优化 | 非比较排序 _ 探寻一些不为人知的细节

用户头像
Dream-Y.ocean
2022-09-27

💛 前情提要💛 本章节是数据结构的八大排序(下)的相关知识~ 接下来我们即将进入一个全新的空间,对代码有一个全新的视角~ 以下的内容一定会让你对数据结构有一个颠覆性的认识哦!!! ❗以下内容以C语言的方式实现,对于数据结构来说最重要的是思想

https://static001.geekbang.org/infoq/ee/ee8028a3740c06f1a40d46941323fda0.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深度剖析“八大排序”(上)_ 探寻一些不为人知的细节

用户头像
Dream-Y.ocean
2022-09-27

前情提要 本章节是数据结构的八大排序(一)的相关知识~ 接下来我们即将进入一个全新的空间,对代码有一个全新的视角~ 以下的内容一定会让你对数据结构有一个颠覆性的认识哦!!! ❗以下内容以C语言的方式实现,对于数据结构来说最重要的是思想哦❗

【算法实践】手把手带你简单实现希尔排序

用户头像
迷彩
2022-09-25

希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进版本。该方法又称缩小增量排序或者递减增量排序算法,跟插入排序不一样的是希尔排序是非稳定排序算法。因D.L.Shell于1959年提出而得名。

https://static001.geekbang.org/infoq/8c/8c9143eb02afb0d85bd48eba5a97116e.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Go 语言实现常见排序算法

用户头像
宇宙之一粟
2022-08-29

插入排序,英文名(insertion sort)是一种简单且有效的比较排序算法。

https://static001.geekbang.org/infoq/1d/1d6cf9c8f41c42972e809ec60d067f00.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

10 大常用的排序算法 (算法分析 + 动图演示)

用户头像
Five
2022-08-29

十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行

利用 Python 手把手带上实现冒泡排序

用户头像
迷彩
2022-07-24

之前写过一篇关于Python算法分析的文章--《利用 Python 浅尝算法分析》,想要学好计算机,数据结构和算法几乎是无法回避的课题,因为我们学习编程第一节课老师都会跟你说:程序 = 数据结构 + 算法.所以说这必学的编程基础知识.

【算法社区】十大排序算法详解

本文详细介绍了冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序、外部排序的算法流程和源码。供读者理解与学习,适合点赞+收藏。有什么错误希望大家直接指出~

https://static001.geekbang.org/infoq/d9/d93bb2b22f11d872131b64f6066a6cd7.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【图解数据结构】排序全面总结 (下)

用户头像
知心宝贝
2022-03-24

之前的排序全面总结(上)对插入类和交换类排序作了比较详细的总结,本章内容要求熟练掌握简单选择排序算法,了解树形选择排序、堆选择排序、归并排序、基数排序的特点、时空复杂度、算法流程。

https://static001.geekbang.org/infoq/de/de003abb9e11a1a0ba07baec69f902a4.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【图解数据结构】排序全面总结 (上)

用户头像
知心宝贝
2022-03-23

通过这篇文章理解排序基本概念以及稳定性,时空复杂度以及适用场景,熟练掌握直接插入排序、折半插入排序、冒泡排序这三种常见的排序算法,了解希尔排序、快速排序的执行过程以及算法。

https://static001.geekbang.org/infoq/0e/0eac12a597d57dc1896a651696304a4c.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法思想与 Python 实现

用户头像
宇宙之一粟
2021-12-24

一般排序算法最常考的:快速排序和归并排序。这两个算法体现了分治算法的核心观点,而且还有很多出题的可能。

https://static001.geekbang.org/infoq/6d/6d93376dfb89f730f4dc31878071ec13.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 基数排序

用户头像
Ayue、
2021-08-10

基数排序按照从右往左的顺序,依次将每一位都当做一次关键字,然后按照该关键字对数组排序,同时每一轮排序都基于上轮排序后的结果;当我们将所有的位排序后,整个数组就达到有序状态。基数排序不是基于比较的算法。

https://static001.geekbang.org/infoq/0c/0c6e6e00bf58a3ce8686b6ce3336efd8.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 桶排序

用户头像
Ayue、
2021-08-09

桶排序是计数排序的升级,计数排序可以看成每个桶只存储相同元素,而桶排序每个桶存储一定范围的元素,通过函数的某种映射关系,将待排序数组中的元素映射到各个对应的桶中,对每个桶中的元素进行排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序

https://static001.geekbang.org/infoq/b8/b87b6915e497592e51398992a730a921.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 计数排序

用户头像
Ayue、
2021-08-08

一种非比较排序。计数排序对一定范围内的整数排序时候的速度非常快,一般快于其他排序算法。但计数排序局限性比较大,只限于对整数进行排序,而且待排序元素值分布较连续、跨度小的情况。

https://static001.geekbang.org/infoq/28/2863d1afa14dbdefa13193695d19d96d.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 堆排序

用户头像
Ayue、
2021-08-07

这里的堆并不是JVM中堆栈的堆,而是一种特殊的二叉树,通常也叫作二叉堆。

https://static001.geekbang.org/infoq/6b/6b8d5eb02468b5a4ff84658da26abf16.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 快速排序

用户头像
Ayue、
2021-08-06

快速排序是对冒泡排序的一种改进,也是采用分治法的一个典型的应用。JDK中Arrays的sort()方法,具体的排序细节就是使用快速排序实现的。

https://static001.geekbang.org/infoq/a5/a58ad51c8bb80b27e9b477cc7da47e35.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 归并排序

用户头像
Ayue、
2021-08-05

归并,指合并,合在一起。归并排序是建立在归并操作上的一种排序算法。其主要思想是分而治之。什么是分而治之?分而治之就是将一个复杂的计算,按照设定的阈值进行分解成多个计算,然后将各个计算结果进行汇总。即“分”就是把一个大的通过递归

https://static001.geekbang.org/infoq/a7/a716c784c752656a91488743c366bd94.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 希尔排序

用户头像
Ayue、
2021-08-04

希尔排序,一种基于插入排序的快速的排序算法。简单插入排序对于大规模乱序数组很慢,因为元素只能一点一点地从数组的一端移动到另一端。例如,如果主键最小的元素正好在数组的尽头,要将它挪到正确的位置就需要n-1次移动。

https://static001.geekbang.org/infoq/18/18b00d38c4605ac80cf86e8ea6094451.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 插入排序

用户头像
Ayue、
2021-08-03

当我们在玩扑克牌的时候,总是在牌堆里面抽取最顶部的一张然后按顺序在手中排列。

https://static001.geekbang.org/infoq/f4/f4f92c48519e2671b88506be3a560645.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 选择排序

用户头像
Ayue、
2021-08-02

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。

https://static001.geekbang.org/infoq/92/9267fa9ccd8ad9529a7a98265e75ef6c.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

十大排序算法 -- 冒泡排序

用户头像
Ayue、
2021-08-01

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。

https://static001.geekbang.org/infoq/ab/ab0cd37c2b609f8c95ac16e0ccf2ee1d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

爱奇艺搜索排序算法实践(内附福利)

爱奇艺搜索排序算法实践如何开展?快跟随技术专家的脚步一起揭秘吧!

https://static001.geekbang.org/infoq/44/44b44d05fe7c9480b71ad4df579cc3be.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

手写基数排序算法

用户头像
实力程序员
2021-07-28

由于计算机中字符、浮点等都是由整数来表示的,因此基数排序(Radix sort)算法是一种普适性的算法,可以用于整数、字符、浮点数排序。

https://static001.geekbang.org/infoq/1f/1f171f531831fc4572ebf45e278d48be.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

手写计数排序算法

用户头像
实力程序员
2021-07-27

计数排序算法的思想为: 待排序的数列中,先找出最小值min和最大值max,形成一个值区间[min, max]。然后遍历待排序的数列,对每个值,将这个值对应的存储空间上​对应位置的计数值加一。

手写归并排序算法

用户头像
实力程序员
2021-07-21

归并排序算法,是基于分而治之的思想,核心思路为: 要对一个数组进行归并排序,则先把这个数组从中间切开,变成2个子数组。然后对每个子数组进行归并排序,最后,2个排好序的子数组再合并成一个有序的数组,这样整个数组的排序就完成了。

手写希尔排序算法

用户头像
实力程序员
2021-07-20

昨天给大家介绍了插入排序算法,今天介绍的希尔排序算法,其实是插入排序算法的更高效改进版。该算法因D.L.Shell于1959年提出而得名。

排序算法_排序算法技术文章_InfoQ写作社区