Java (2) Insertion Sort 插入排序

算法原理

工作原理:
设有一组关键字{K1, K2,…, Kn}.排序开始就认为 K1 是一个有序序列,让 K2 插入上述表长为 1 的有序序列,使之成为一个表长为 2 的有序序列;然后让 K3 插入上述表长为 2 的有序序列,使之成为一个表长为 3 的有序序列;依次类推,最后让 Kn 插入上述表长为 n-1 的有序序列,得一个表长为 n 的有序序列。
具体算法描述如下

  1. 从第一个元素开始,该元素可以认为已经被排序取出下一个元素
  2. 在已经排序的元素序列中从后向前扫描
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
  4. 重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置
  5. 将新元素插入到该位置后
  6. 重复步骤 2~5
    也可以使用二分查找法来减少比较操作的次数。

示例

Java语言实现

public static void main(String[] args) {
int[] array={7,6,8,1,5};
int temp;
for(int i=1;i<array.length;i++)
{
    temp=array[i];
    for(int j=i;j>0;j--)
    {
        if(array[j-1]>temp){
            array[j]=array[j-1];
            array[j-1]=temp;
        }
        else{
            array[j]=temp;
            break;
        }
    }
}
for(int a=0;a<array.length;a++)
{
    System.out.print(array[a]);
}
}
Contents
  1. 算法原理
  2. 示例
  3. Java语言实现
|