现在的位置: 首页 > 综合 > 正文

java 插入排序

2014年02月28日 ⁄ 综合 ⁄ 共 984字 ⁄ 字号 评论关闭

插入排序

         要找到合适的位置,需要判断前一个元素比t小而后一个元素比t大。然后将t插入正确位置。

        
比较a[j-1]  跟 a[j] 的关系很关键

package contcurrentandalgorithm;

/**
 *
 * @author Administrator
 * zyyjiao@mail.ustc.edu.cn
 */
public class Sort1 {

    public static void main(String[] args) {
        int a[] = {1, 3, 9, 4, 7, 6};
        int t = 0;
        int temp;
        for (int i = 0; i < a.length; i++) {
            for (int j = i; j > 0 && a[j - 1] > a[j]; j--) {
                temp = a[j];
                a[j] = a[j - 1];
                a[j - 1] = temp;

            }
        }
        for(int k=0;k<a.length;k++){
             System.out.print(a[k]);
        }
      
    }
}

下面是一个优化

package contcurrentandalgorithm;

/**
 *
 * @author Administrator
 * zyyjiao@mail.ustc.edu.cn
 */
public class Sort2 {

    public static void main(String[] args) {
        int a[] = {1, 3, 9, 4, 7, 6};
        int t;
        int j;
        for (int i = 1; i < a.length; i++) {
            t = a[i];
            for (j = i; j > 0 && a[j - 1] > t; j--) {

                a[j] = a[j - 1];

            }
            a[j] = t;

        }

        for (int k = 0; k < a.length; k++) {
            System.out.print(a[k]);
        }

    }
}

 

抱歉!评论已关闭.