直接插入算法

 
  1. package test;
  2. public class Insert {
  3.     public void sort(int[] data){ //定义参数为数组首地址
  4.        int i,j,temp;
  5.        for(i=0;i<data.length;i++){ //插入,降序
  6.         temp=data[i]; //temp为要插入的元素
  7.         j=i-1;                  
  8.         while(j>=0&&temp<data[j]) //从a[i-1]开始找比a[i]大的数(也就是找比temp小的数),同时把数组元素向后移
  9.         {
  10.          data[j+1]=data[j];
  11.          j--;
  12.         }
  13.       
  14.         data[j+1]=temp; //插入
  15.        
  16.         /*以下是打印每一次排序后的序列,与算法无关*/
  17.         for(int q=0;q<data.length;q++){
  18.           System.out.print(data[q]+" "); 
  19.           } 
  20.         System.out.println(); //换行
  21.        }
  22.        
  23.     }
  24.     public static void main(String[] args){
  25.        Insert insertSort=new Insert();
  26.        int[] a={1,6,5,3,8};
  27.        for(int i=0;i<a.length;i++)
  28.        System.out.print(a[i]+" ");
  29.        System.out.println("/n降序排序");
  30.        insertSort.sort(a); 
  31.       
  32.        System.out.println("/n after sort:");
  33.        for(int i=0;i<a.length;i++)
  34.         System.out.print(a[i]+" ");
  35.     }
  36. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值