排序算法 · 精选文章
排序算法的相关视频
一看就会
05:49
电子工程师
一个视频让你全面了解“排序算法”,全程不要眨眼
00:45
爱可可-爱生活
深入浅出排序算法
22:40
正月点灯笼
[算法教程]几种经典排序的实现
14:07
马士兵说
马士兵说:插入排序算法
排序算法-搜狗百科
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,...
搜狗百科
相关算法
十大经典排序算法(动图演示)一像素-博客园
0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序...
图书知识聚合
在8本书中找到答案
  • 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》
    章节6.3.1 物理直接读
    在进一步分析排序操作的性能之前,我们先简单地了解 Oracle 的排序算法。 目前(10gR2 及以后版本),在 Oracle 中存在两种版本的排序算法,我们下面对它们做一个简单描述。 排序算法(版本 1,V1) 我们知道,在进行 SQL 查询时,排序操作是在特定的内存中完成的,也就是排序工作区。 初次进入排序区的数据是无序的,Oracle 要选择一项合适的算法对这些无序数据进行排序。 在 10g 之前,工作区是固定分配的(sort_area_size 设置)。 除非在会话中重新设置,所有会话都只能分配相同大小的排序区。 因此,这就决定了排序区大小通常不能太大。 这也就成为 Oracle 选择排序算法的重要因素,即空间复杂度小并且稳定。 而在所有已知排序算法中,空间复杂度最小的算法为插入排序、选择排序和堆排序,复杂度为 O(1),但是选择排序和堆排序都具有不稳性,因此最终选择插入排序。
    黄玮
    北京华章图文信息有限公司
  • 《程序员面试攻略(原书第3版)》
    章节第 8 章 排序
    排序算法基于两个原因变得很有用。第一是向用户展示有序的数据,比如将一个雇员列表以名字或姓的字母表顺序排序;第二是对其他算法进行化简或优化,或者通过在应用算法前将输入数据排序,或者在运行时将中间数据进行排序。你很少需要编写一个排序算法。大多数编程语言在其标准函数库中包括至少一个排序算法(通常是快速排序算法)。这些内置的算法对一般情况来说都是适用的。当一个通用的排序算法并不能满足你的需求时,通过一些很小的努力就可以让一些专门的排序算法适应这种情况。虽然你不大可能实现排序算法,但是你必须理解它们之间的差异和如何取舍。每种算法都有优点和缺点,没有哪种算法在所有情况下都是最好的。面试官喜欢排序问题,因为它们提供了一个简单的办法用于检查从算法复杂度到内存占用等各种各样的问题。
    John Mongan Eric Giguère Noah Kindler
    北京华章图文信息有限公司
  • 《计算思维与算法入门》
    章节3.4 快速排序法
    快速排序法又称分割交换排序法,是目前公认最佳的排序法,也是使用“分而治之”的方式。 这种算法会先在数据中找到一个虚拟的中间值,并按此中间值将所有打算排序的数据分为两部分,其中小于中间值的数据放在左边,而大于中间值的数据放在右边,再以同样的方式分别处理左右两边的数据,直到排序完为止。 操作与分割步骤如下: 假设有 n 项记录 R1、R2、R3、…、Rn,其键值为 K1、K2、K3、…、Kn。 步骤 01 先假设 K 的值为第一个键值。 步骤 02 从左向右找出键值 Ki,使得 Ki>K。 步骤 03 从右向左找出键值 Kj,使得 Kj<K。步骤 04 如果 i<j,那么 Ki与 Kj互换,并回到步骤 02。步骤 05 若 i≥j,则将 K 与 Kj交换,并以 j 为基准点分割成左右部分。步骤 06 针对左右两边进行步骤 01至步骤 05的操作,直到左半边键值等于右半边键值为止。下面示范用快速排序法对数据进行排序的过程,原始数据如图 3-18 所示。图 3-18 原始数据步骤 01 因为 i<j,故交换 Ki与 Kj,如图 3-19 所示,然后继续比较。图 3-19 第一轮排序步骤 02 因为 i<j,故交换 Ki与 Kj,如图 3-20 所示,然后继续比较。图 3-20 第二轮排序步骤 03 因为 i≥j,故交
    赵军
    北京华章图文信息有限公司
  • 《计算思维与计算文化》
    章节6.6.1 排序算法
    排序方法有很多,本节以选择排序为例来讲解其算法的基本思想和利用 Python 语言的实现方法。 选择排序的基本思想是每次从剩余待排序的数据中挑选最小(或最大)的一个数据放在剩余待排序数据序列的第一个位置,也就是第 i 趟排序时,从第 i 个位置至第 n 个位置(共 n 个数据)选择最小(或最大)的数据放在第 i 个位置,共进行 1n− 趟完成整个序列的排序。 下面以例子来说明选择排序的基本过程及利用 Python 语言的实现方法。 例 3某市大学生计算机应用能力大赛共有 6 件作品,经过评审委员会的评审,分别给出各作品的成绩如下: 86,80,75,90,82,88,请利用选择排序的思想写出对该成绩从低到高进行排序的过程,并利用 Python 语言来实现此过程。 选择排序的基本过程如下,其中,中括号内为无序序列,中括号外的数据为已经按要求排序的序列。 初始序列  [86,80,75,90,82,88] 第 1 次   86 与 75 交换,结果为: 75[80,86,90,82,88] 第 2 次   80 为最小的数,无须交换,结果为:
    王永全 ,单美静
    人民邮电出版社有限公司
  • 《Visual Basic程序设计教程(第4版)》
    章节7.7 数组应用举例
    排序的算法有很多种,如比较交换法、选择排序法、冒泡排序法、插入排序法、希尔排序法、归并排序法等。不同的排序方法效率不同。以下分别使用比较交换法、选择排序法和冒泡排序法实现排序。比较交换法比较交换法的排序方法如下所示。第 1 步:将第 1 个数与第 2 个数到第 N 个数依次比较,如果 X(1)>X(J)(J=2,3,…,N),则交换 X(1)、X(J)的内容,此步结束时 X(1)为第 1 个数到第 N 个数的最小值。第 2 步:将第 2 个数与第 3 个数到第 N 个数依次比较,如果 X(2)>X(J)(J=3,4,…,N),则交换 X(2)、X(J)的内容。此步结束时 X(2)为第 2 个数到第 N 个数的最小值。……第 I 步:重复以上方法,将第 I 个数与第 I+1 个数到第 N 个数依次比较,如果 X(I)>X(J)(J=I+1,…,N),
    郭志强等
    北京华章图文信息有限公司
  • 《软件测试工程师面试秘籍》
    章节2.1.5 排序 [3]
    排序算法有很多,包括插入排序、冒泡排序、堆排序、归并排序、选择排序、计数排序、基数排序、桶排序、快速排序等。插入排序、堆排序、选择排序、归并排序、快速排序和冒泡排序都是比较排序,堆排序属于选择排序,插入排序、希尔排序属于插入排序。下面复习几种常考的排序算法。1.冒泡排序(BubbleSort)最简单的一个冒泡排序算法如下。public void bubbleSort(){int out, in;for(out=nElems-1; out>0; out--) // outer loop (backward)for(in=0; in<out; in++)  // inner loop (forward)if( a[in] > a[in+1] )  // out of order?swap(in, in+1);   // swap them} // end bubbleSort()上面冒泡排序算法的效率为:O(N2)2.选择排序(Se
    G.li
    人民邮电出版社有限公司
  • 《零基础学算法 (第2版)》
    章节4.5 堆排序法
    堆排序法 堆排序(Heap Sort)也是一种选择排序算法,堆排序是利用堆的特性进行排序的过程,本节介绍这种算法过程和实现代码。 4.5.1 算法描述 在介绍堆排序之前,首先了解什么是堆。 堆是一个完全二叉树,树中每个节点对应于原始数据的一个记录,并且每个节点应满足以下条件:非叶节点的数据大于或等于其左、右孩子节点的数据(若是按从大到小的顺序排序,则要求非叶节点的数据小于或等于其左、右孩子节点的数据)。
    戴艳
    机械工业出版社
  • 《FORTRAN程序设计权威指南》
    章节13.2.5 快速排序
    "快速排序法处理N个数据的步骤如下: 1)将数据组中的第1个数字作为键值K,并且令L=2,R=N,num(n)为数据中第n个数字。 2)以K值为基准,大于K的数字向后移动,同时小于K的数字向前移动。也就是,从第L个数字开始,依序拿之后的每一个数字和键值K来比较,直到找出S≥K为止,把S在数据中的位置重新设置为L;从第R个数字开始,依序拿之前的每一个数字和键值K来比较,直到找出T≤K为止,把T在数据中的位置重新设置为R。"
    白海波
    机械工业出版社
常见的7种排序算法_ispurs的博客-CSDN博客_排序算法
阅读:8w+
1、冒泡排序最简单的一种排序算法。假设长度为n的数组arr,要按照从小到大排序。则冒泡排序的具体过程可以...
十种排序算法_coolwriter的博客-CSDN博客
1.常见算法分类十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:交换类排序(快速排序和...
排序算法(七大经典排序算法)龙跃十二-CSDN博客_排列应用算法
排序算法是一种在日常生活中应用很广泛的算法,所以我们应该很好的掌握他。然而最熟悉的往往是最容易忽略的...
排序算法 夸克百科
计算机语言的逻辑基础
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。不稳定排序算法可能会在相等的键值中改变纪录的相对次序,但是稳定排序算法从来不会如此。不稳定排序算法可以被特别地时作为稳定。作这件事情的一个方式是人工扩充键值的比较,如此在其他方面相同键值的两个物件间之比较,就会被决定使用在原先资料次序中的条目,当作一个同分决赛。然而,要记住这种次序通常牵涉到额外的空间负担。
中文名排序算法
外文名Sorting algorithm
什么是排序算法-常见问题-PHP中文网
排序算法就是指通过特定的算法因式将一组或多组数据按照既定模式进行重新排序,这种新序列遵循着一定的规则...
下一页 网络不给力?刷新试试