排序之直接插入排序

来源:互联网 发布:cgwang插画网络 编辑:程序博客网 时间:2024/05/01 02:44

         记得我们玩斗地主的游戏吗?我们取一张牌时,发现它是小的就插入到前面去,如果最大,就不动。插入排序就是这样的思想。从数组第二个元素开始,一直向前寻找自己待插入的位置。

      它需要比较n-1次,从第二个元素开始至最后一个元素。

      第一层循环:for(i=1;i<array.length;i++)

       循环比较n-1次。

      第二层循环:for(j=i-1;j>=0;j--)

       从当前元素的前一个数据开始比较,如果小就将前一个数据后移一个位置。

       public class DirectInsert{
              public static void main(String args[]){
                    int array[]=new int[]{10,9,8,7,6,5,4,3,2,1};
                    int i,j;
                    int temp;
                   System.out.println("在排序之前的输出:");
                   for(i=0;i<array.length;i++){
                       System.out.print(array[i]+" ");
                   }
      
                  for(i=1;i<array.length;i++){
                        temp=array[i];
                        for(j=i-1;j>=0;j--){
                            if(temp<array[j]){
                                array[j+1]=array[j];
                            }
                           else{
                                  break;
                            }
                       }
                    array[j+1]=temp;
                    }
                System.out.println("\n排序之后的输出:");
                for(i=0;i<array.length;i++){
                    System.out.print(array[i]+" ");
                }
       }
}

原创粉丝点击