插入排序

来源:互联网 发布:天谕男玉虚捏脸数据图 编辑:程序博客网 时间:2024/06/05 15:25

插入排序

计算步骤
- 首先对数组的前两个数据进行从小到大排序。
- 接着将第三个数据与排好序的两个数据比较,将三个数据插入合适的位置。
- 然后,将第四个数据插入已排好序的前3个数据中。
- 不断重复上述过程,直到把最后一个数据插入合适的位置。最后,便完成了对原始数组从小到大的排序。

代码:

public class P4_3 {    static final int SIZE = 10;    public static void insertionSort(int[] a){        int i,j,t,h;        for (i = 1; i < a.length; i++) {            t=a[i];            j=i-1;            while (j>=0 && t<a[j]){                a[j+1] = a[j];                j--;            }            a[j+1] = t;            System.out.print("第"+i+"步排序结果");            for (int k = 0; k < a.length; k++) {                System.out.print("  "+a[k]);            }            System.out.println();        }    }    public static void main(String[] args) {        int[] shuzu = new int[SIZE];        for (int i = 0; i < SIZE; i++) {            shuzu[i] = (int)(100 + Math.random()*(100+1));        }        //        System.out.println("排序前数组为:");        for (int i = 0; i < shuzu.length; i++) {            System.out.print("  "+ shuzu[i]);        }        //        System.out.println();        insertionSort(shuzu);        System.out.println("排序后数组为:");        for (int i = 0; i < shuzu.length; i++) {            System.out.print("  "+ shuzu[i]);        }    }}

结果

排序前数组为:  121  100  140  155  178  104  132  100  146  1521步排序结果  100  121  140  155  178  104  132  100  146  1522步排序结果  100  121  140  155  178  104  132  100  146  1523步排序结果  100  121  140  155  178  104  132  100  146  1524步排序结果  100  121  140  155  178  104  132  100  146  1525步排序结果  100  104  121  140  155  178  132  100  146  1526步排序结果  100  104  121  132  140  155  178  100  146  1527步排序结果  100  100  104  121  132  140  155  178  146  1528步排序结果  100  100  104  121  132  140  146  155  178  1529步排序结果  100  100  104  121  132  140  146  152  155  178排序后数组为:  100  100  104  121  132  140  146  152  155  178Process finished with exit code 0
原创粉丝点击