排序
定义
将一组任意顺序的数据,重新排列成关键字有序的序列。
分类
1、内部排序
排序过程在内存中完成。
(1)插入排序
(2)选择排序
(3)交换排序
(4)归并排序
(5)分配排序
2、外部排序
数据量比较大的时候需要借助外部资源来实现排序。
算法的 稳定性:
如果序列中有两个关键字相等,那么在排序之后这两个关键字的相对位置(谁前谁后)不变的话,就说这
个算法是稳定的。
直接插入排序
R[0]是监视哨
如果前i-1个关键字处于有序状态,那么将第r[i]插入到前面的顺序表中的适当位置,逐个将后面未排序的关
键字插入到前面的有序表当中。
基本思想
基于有序有序插入。
用监视哨来存放要插入的元素值。
对于一个要进行排序的序列,默认初始有序序列为1个数据。也就是这里的(49)。
当i=1时,只有一个数据,不需要比较。
每一趟排序的序列将增加一个元素。如果序列中有n个元素,那么最多进行n-1趟排序即可。
将要插入的数据,也就是监视哨中的数据和已经有序的序列的最后一个数据比较,倒着比较。
如果有序序列的最后一个数据小于要插入的元素的值,那么直接将要插入的数据存放在当前的位置即可。
否则的话将最后一个数据向后移一位。接着比较倒数第二个。
Java实现代码
package com.xingyun.paixu;
import java.util.Sc