java排序之插入排序(三)

来源:互联网 发布:淘宝导航条代码 编辑:程序博客网 时间:2024/06/06 10:41
当一组数据中有一部分数据已经是排好时,用插入排序更好。插入排序的原理是,升序时,从第二个数开始循环跟前面的数一一作比较,如果小于前面的数就插入这个数的前面的一个位置。具体看代码。。//第一种写法static int[] insertSort(int[] p){    int j, temp;    for(int i=1; i<p.length; i++){        temp = p[i]; //在i前面的数都是排好序的,把p[i]给临时变量         j = i-1;        while(j>=0 && temp < p[j]){ //如果temp比前面的数小            p[j+1] = p[j]; //p[j]往后移            j--;  //j自减,让temp与前面的数依次比较        }        p[++j] = temp;  //p[++j]为空出来的,把temp插在这个位置    }    return p;}   //第二种写法,这种写法很好理解。就是temp依次与前面的数比较,插在满足条件的位置    static int[] insertSort(int[] p){        int i, j, temp;        for(i=1; i<p.length; i++){            for(j=i; (j>0)&&(p[j]<p[j-1]); j--){                temp = p[j];                p[j] = p[j-1];                p[j-1] = temp;            }        }        return p;    }
0 0
原创粉丝点击