写点什么

排序算法

0 人感兴趣 · 26 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/6e/6e9804b8af1925c4a6d44a29ae31c056.jpeg?x-oss-process=image/resize,w_416,h_234

经典排序算法分析

用户头像
roseduan3 月 18 日

排序指的是将一组对象按照特定的逻辑顺序重新排列的过程,排序的应用十分广泛,可以说是无处不在,它在商业数据处理和现代科学计算中发挥着举足轻重的作用,目前已知的应用最广泛的排序算法—快速排序,更是被誉为了 20 世纪科学和工程领域的十大算法之一。

https://static001.geekbang.org/infoq/4e/4e02fc9a731f676c78d5816951fd9d44.png?x-oss-process=image/resize,w_416,h_234

图解堆排序

用户头像
Silently95273 月 17 日

假如我们从构建好的优先级队列中持续调用删除最小(或者最大),把结果输出到另一个数组中,那么就可以把数组的所有元素进行排序,这就是本篇我们需要学习的**堆排序**。在看本篇之前需要先看下前一篇《原来实现优先级队列如此简单》

https://static001.geekbang.org/infoq/0b/0b4f65de6d8d3e12db6679fb1b8e36ff.png?x-oss-process=image/resize,w_416,h_234

快速排序算法实现及优化

用户头像
Silently95273 月 8 日

本文已被Github仓库收录 https://github.com/silently9527/JavaCore

https://static001.geekbang.org/infoq/05/05ed93bcd33981a3ed88d8f30d96a504.png?x-oss-process=image/resize,w_416,h_234

死磕归并排序算法

用户头像
Silently95273 月 4 日

本文已被Github仓库收录 https://github.com/silently9527/JavaCore

https://static001.geekbang.org/infoq/34/346405e52f5cbd5c3bea83371a437d5c.png?x-oss-process=image/resize,w_416,h_234

常见的初级排序算法,这次全搞懂

用户头像
Silently95272 月 25 日

本文已被Github仓库收录 https://github.com/silently9527/JavaCore

https://static001.geekbang.org/infoq/16/169639dde5ba65a2f4129cef27c9ad15.jpeg?x-oss-process=image/resize,w_416,h_234

数据结构与算法 - 排序 1. 冒泡排序

用户头像
小马哥2 月 9 日

每天写点数据结构与算法, 今天的算法是排序, 第一种也是最简单的排序算法: 冒泡排序. 加上了对冒泡排序的优化.

https://static001.geekbang.org/infoq/fc/fc1bbd14e66607a8047e604720020571.png?x-oss-process=image/resize,w_416,h_234

「干货总结」程序员必知必会的十大排序算法

用户头像
bigsai2020 年 11 月 26 日

十大排序是程序员面试笔试所必须的技能点,通过本篇一键掌握!

https://static001.geekbang.org/infoq/51/51cea64a1e4297ef12a3ab2e567a3ea2.png?x-oss-process=image/resize,w_416,h_234

「八大排序算法」16 张图带你彻底搞懂基数排序

用户头像
bigsai2020 年 11 月 14 日

原创公众号:bigsai 转载需注明本链接和作者 本文用16张图讲了基数排序的原理以及各种情况的实现,包括数字类型,字符串等长和不等长的以及用数组优化空间实现!

「排序算法」图解双轴快排

用户头像
bigsai2020 年 11 月 5 日

原创公众号:bigsai,双轴快排为Arrays.sort()主要使用的排序方式,但是Arrays.sort()看起来可能复杂一些,这里图解让你最容易理解双轴快排!

https://static001.geekbang.org/infoq/de/dee42b15bf30a79ef531c52a54191cc1.jpeg?x-oss-process=image/resize,w_416,h_234

Java 七种排序算法以及实现

用户头像
狸猫换太子2020 年 7 月 31 日

最近学习一些排序算法,怕自己以后忘记就打算整理起来供自己复习

https://static001.geekbang.org/infoq/96/964d8446c38ed11dd09e77496d7ada83.png?x-oss-process=image/resize,w_416,h_234

八个排序的原理、Java 实现以及算法分析

用户头像
多选参数2020 年 7 月 21 日

8 种最经典、最常用的排序算法(冒泡排序、插入排序、选择排序、归并排序、快速排序、桶排序、计数排序、基数排序)的基本原理、Java 实现以及算法分析(时间复杂度、空间复杂度、是否稳定)。

https://static001.geekbang.org/infoq/8f/8fed4cad487bc6028e546be52c47556c.jpeg?x-oss-process=image/resize,w_416,h_234

JAVA 算法

用户头像
Bruce Duan2020 年 7 月 20 日

又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置

如何把百万级别的订单根据金额排序

用户头像
码哥字节2020 年 7 月 13 日

前面「码哥字节」介绍了一些经典排序算法,它们的时间复杂度最好是 O(nlogn),那 **如何把百万级别的订单根据金额排序?**是不是觉得可以按照之前学的归并排序、快速排序实现?功能是可以完成,但是效率太低了。今天「码哥」带大家一起玩转特殊场景下的排序算

https://static001.geekbang.org/infoq/4c/4c1aea4dcdb5167bf6cba8645430c899.jpeg?x-oss-process=image/resize,w_416,h_234

看动画学算法之: 排序 - 冒泡排序

用户头像
程序那些事2020 年 7 月 12 日

排序可能是所有的算法中最最基础和最最常用的了。排序是一个非常经典的问题,它以一定的顺序对一个数组(或一个列表)中的项进行重新排序。

https://static001.geekbang.org/infoq/24/24ecf858d09cd1407d10bf8f8a3d0648.png?x-oss-process=image/resize,w_416,h_234

算法基础:排序算法看这一篇就够了

用户头像
公众号:好奇心森林2020 年 6 月 13 日

本文作者:sytyale,另外一个聪明好学的同事

https://static001.geekbang.org/infoq/e0/e03f83631f0f017ed676393aceb40bfb.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之桶排序 (Bucket Sort)

用户头像
南风以南2020 年 5 月 30 日

桶排序也叫箱排序,其主要思想是:将待排序集合中处于同一个值域的元素存入同一个桶中,也就是根据元素值特性将集合拆分为多个区域,则拆分后形成的多个桶,从值域上看是处于有序状态的。对每个桶中元素进行排序,则所有桶中元素构成的集合是已排序的。

https://static001.geekbang.org/infoq/f9/f97c9312a3b225a9a06a474dec94b99c.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之基数排序 (Radix Sort)

用户头像
南风以南2020 年 5 月 29 日

基数排序是一种非比较型排序算法,基本思想是:将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。按照低位先排序,分别放入10个队列中,然后采用先进先出的原则进行收集;再按照高位排序,然后再收集;依次类推直到最高位,最终得到排好序的数列

https://static001.geekbang.org/infoq/09/09cecff9cb5d8a038af21036bef139c0.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之计数排序 (Counting Sort)

用户头像
南风以南2020 年 5 月 28 日

计数排序不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 基本思想是:给定的输入序列中的每一个元素x,确定该序列中值小于等于x元素的个数,然后将x直接存放到最终的排序序列的正确位置上。

https://static001.geekbang.org/infoq/56/5696f4aaf47d5b59582bd3dd400701f7.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之堆排序 (Heap Sort)

用户头像
南风以南2020 年 5 月 27 日

堆排序是利用堆这种数据结构而设计的一种排序算法。思路为: 将一个无序序列调整为一个堆,就能找出序列中的最大值(最小值),然后将找出的这个元素与末尾元素交换,这样有序序列元素就增加一个,无序序列元素减少一个,对新的无序序列重复操作,从而实现排序

https://static001.geekbang.org/infoq/1b/1b6916404b45b210a0d4d55c6786614f.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之希尔排序 (Shell Sort)

用户头像
南风以南2020 年 5 月 26 日

希尔排序也称缩小增量排序,其基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。

https://static001.geekbang.org/infoq/c1/c1fdd23ce7788c7bc685700b7885e1e6.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之归并排序 (Merge Sort)

用户头像
南风以南2020 年 5 月 25 日

归并排序是一种非常高效的排序方式,它用了分治的思想,基本排序思想是:先将整个序列两两分开,然后每组中的两个元素排好序。接着就是组与组和合并,只需将两组所有的元素遍历一遍,即可按顺序合并。以此类推,最终所有组合并为一组时,整个数列完成排序。

https://static001.geekbang.org/infoq/ed/ed7480d15e61824428e64532fd9c61ae.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之快速排序 (Quick Sort)

用户头像
南风以南2020 年 5 月 23 日

快速排序是冒泡排序的改进版,其基本思想:选一基准元素,依次将剩余元素中小于该基准元素的值放置其左侧,大于等于该基准元素的值放置其右侧;然后,取基准元素的前半部分和后半部分分别进行同样的处理;以此类推,直至各子序列剩余一个元素时,即排序完成。

https://static001.geekbang.org/infoq/31/31c019cc1701ad063770bb5512fc7d51.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之插入排序 (Insertion Sort)

用户头像
南风以南2020 年 5 月 23 日

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

https://static001.geekbang.org/infoq/e9/e90cc9bf6f48e089d3e51b4348f50f69.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之选择排序 (Selection Sort)

用户头像
南风以南2020 年 5 月 22 日

选择排序是一种简单直观的排序算法。它的工作原理是:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完成。

https://static001.geekbang.org/infoq/3e/3ef3a078e00d3bea4d5b566fb2cdd6c5.png?x-oss-process=image/resize,w_416,h_234

python 实现·十大排序算法之冒泡排序 (Bubble Sort)

用户头像
南风以南2020 年 5 月 21 日

冒泡排序是经典排序算法之一,属于交换排序的一种,基本的排序思路是:从头开始两两元素进行比较,大的元素就往上冒,这样遍历一轮后,最大的元素就会直接筛选出来。然后再重复上述操作,即可完成第二大元素的冒泡。以此类推,直到所有的元素排序完成。

排序算法_排序算法资料文章-InfoQ写作平台