概念
排序
排序:排序是计算机的一种操作方法,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。(就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作)。
排序是作用于线性结构(有前后顺序),基于比较进行的。
通常我们提到的排序指的是排升序,就是按从小到大的顺序排列。
通常意义上的排序都是指的原地排序(in place sort)。
七大经典的排序算法都可以是内部排序。归并排序有时是最常见外部排序。
内外部排序
内部排序是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列。
外部排序是指排序过程需要在磁盘等外部存储中进行的排序。
因为内存中无法将所有的数据全部放下,所以需要外部排序,而归并排序是最常用的外部排序。
稳定性
两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。
排序算法简介
Java语言中基于比较的“原地”排序算法有7种。(基于比较能力是指只要求元素之间具备(>、 == 、<等)比较的能力)。这7种分别是:冒泡排序,选择排序,插入排序,希尔排序,堆排序,快速排序,归并排序。
七大排序算法
一,一篇看懂冒泡排序BubbleSort算法与代码
二,一篇看懂选择排序Select Sort算法与代码
三,一篇看懂插入排序InsertSort算法与代码
四,一篇看懂希尔排序ShellSort算法与代码
五,一篇看懂堆排序HeapSort算法与代码
六,一篇看懂快速排序QuickSort算法与代码
七,一篇看懂归并排序MergeSort算法与代码