您的位置:首页 > 其它

排序之直接插入排序

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

      它需要比较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]+" ");
                }
       }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: