排序-插入排序-Java

什么是插入排序呢,就是说像玩扑克,我抓牌,来一一张与我手里的比,小的就放在右边。大的加放在他的右边。
第一眼先与最大的比。比现在我手里的还大就直接放在最右边。比我最右边的小,那么就从最右边依次比下去。比的时候比前面的小就与其交换位置。

代码:就是我抓牌啊。来一个比较一个。

这里写图片描述

package sorts;

import object.Example;

public class charu  extends Example{

     /**
      * @param args
      */
     public static void main(String[] args) {

          Comparable[] a = new Comparable[]{"c","b","a","p","r","g","h","w"};
          sort(a);
          show(a);
          System.out.println(isSorted(a));

     }

     public static void sort(Comparable[] a){
          int N = a.length;

          for(int i=1;i<N;i++){
              //一个一个i来
              for(int j=i;j>0&&less(a[j], a[j-1]);j--){
                   //只要是j比他的前一位小并且没有循环完成就交换位置
                   //如果j比他的前一位大那么就跳出循环了。
                   //什么时候是j比他的前一位大呢,就是说j前面的已经排序好了。
                   //然后新来了一个人,讲道理要与现在最大的比较,也就是j-1。
                   //如果来得这个人很牛逼啊比现在最大的还大那么他就不用动了。也就比完了。
                   //如果小于最大的那么就继续向下比!并且要交换。
                   exch(a, j, j-1);
              }


          }

     }

}

同样参考那位博主的图片:
http://blog.csdn.net/jianyuerensheng/article/category/6203559

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值