概述:
排序分为两大类,内部排序和外部排序,内部排序指的是待排序记录存放在计算机随机存储器中进行排序过程,外部排序指的是待排序记录数量很大,以致内存不能一次容纳全部记录,在排序过程中尚需对外存进行访问的排序过程,这里我主要给出内部排序:
其中稳定排序:插入排序、冒泡排序、归并排序、基数排序。
直接插入排序(稳定排序,O(n^2)):基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。
直接插入排序示例:
代码如下:
class InsertSort{
public static void main(String [] args){
int[] a={13,2,56,89,22,43,50};
System.out.print("排序前:");
for(int num:a){
System.out.print(num+" ");
}
System.out.println(" ");
InsertSort(a);
System.out.print("排序后:");
for(int num:a){
System.out.print(num+" ");
}
}
public static void InsertSort(int[] a){
int temp=0;
for(int i=1;i<a.length;i++){
int j=i-1;
temp=a[i];
for(;j>=0 && a[j]>temp;j--){
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
时间复杂度:O(n^2)。