算法导论之插入排序

来源:互联网 发布:c语言return 0 编辑:程序博客网 时间:2024/05/17 01:28


插入排序就想打扑克一样,桌子上的扑克室乱的,我们抓到自己手里的扑克是按照数字顺序排行的。也就是

伪代码

INSERT-SORT(A) for j=2 to  A.lengthkey=a[j]i=j-1;while i>0 and A[i]>keyA[i+1]=A[i]i=i-1A[i+1]=key

public void insertSort(int a[]) {int key; int i;for(int j=1;j<a.length;j++){key=a[j];    i=j-1;    while(i>=0 && a[i]>key){a[i+1]=a[i];i=i-1;}a[i+1]=key;}for(int k=0;k<a.length;k++){System.out.print(a[k]+"  ");}}public static void main(String[] args) {// TODO Auto-generated method stub    InsertSort sort=new InsertSort();    int a[]={3,1,6,8,2,10,4,11};    sort.insertSort(a);}



举例说明A={5,2,4,6}

A[1..j-1]是在手中排好序的,A[j..n]是桌子上的未排序的

  5,     2,4,6   到           5,5,4,6      到   2,5,4,6

2,5     4,6   到2,5,5,6   到2,4,5,6

2,4,5    6  不满足while第二个条件直接2,4,5,6



0 0