Java语言——排序算法
一、基本概念
排序:将n个数字按一定顺序排列(比如:升序,或者降序)
^内部排序 :若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序
^外部排序:若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序
二、几种常用的排序方法
•冒泡排序:对所有相邻记录的关键字值进行比较,如果是逆序(a[j]>a[j+1]),则将其交换,最终达到有序化。
•选择排序:选择排序的思想其实和冒泡排序有点类似,选择排序可以看成冒泡排序的优化。
•快速排序:首先将待排序记录序列中的所有记录作为当前待排序区域,从中任选取一个记录(通常可选第一个记录),以它的关键字作为枢轴(或支点)(pivot),凡其关键字小于枢轴的记录均移动至该记录之前,反之,凡关键字大于枢轴的记录均移动至该记录之后
•插入排序:对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。将记录R[i]插入到有序子序列R[0..i-1]中,使记录的有序序列从R[0..i-1]变为R[0..i]
•希尔排序
•归并排序