直接插入排序算法

来源:互联网 发布:计算机算法有几个 编辑:程序博客网 时间:2024/06/07 05:13

直接插入排序算法


public class InsertSort {   public static void main(String[] args) {       int[] values = { 5, 2, 4, 1, 3 };       sort(values);       for (int i = 0; i < values.length; ++i) {           System.out.println(values[i]);       }   }   public static void sort(int[] values) {       int temp;       int j = 0;       for (int i = 1; i < values.length; i++) {     //此处的判断很重要,这里体现了插入排序比冒泡排序和选择排序快的原因。           if(values[i]<values[i-1])           {                   temp = values[i];               //数据往后移动,j>=0 && temp<values[j]这个判断哼重要               //j=-1时,才会进入for循环下一个代码或者temp<values[j]为false               for (j=i-1; j>=0 && temp<values[j]; j--)               {                                  values[j+1] =values[j];               }               //将数据插入到j+1位置                              values[j+1] =temp;               System.out.print("第" + (i + 1) + "次:");               for (int k = 0; k < values.length; k++) {                   System.out.print(values[k]+",");               }               System.out.println("");           }       }   }}





0 0