zoukankan      html  css  js  c++  java
  • 插入排序法

    插入排序:(我们假设数据列(D0,D1,D2,…DN))中,“已排序部分”是D0~Di-1

                    “待排序部分”的起始元素是Di(i大于等于1小于等于n),排序过程如下:

    1. 令k=0;
    2. 当k<i,执行步骤3~4
    3. 当Dk>Di时,退出循环操作
    4. k加1(为了和下一个数据做比较)
    5. 把Di的值带入临时变量W
    6. Dk~Di向后移动一位
    7. 把W的值带入Dk


    public class Sort {
      public static void main(String[] args) {
      int[] a = new int[10];
      for (int i = 0; i < a.length; i++) {
        int b = (int) (Math.random() * 100);
        a[i] = b;
      }
      System.out.println("排序前:");
      for (int j = 0; j < a.length; j++) {
        System.out.print(a[j]+" ");
      }
      System.out.print(" ");
      insertSort(a);
      System.out.println("排序后:");
      for (int k = 0; k < a.length; k++) {
        System.out.print(a[k]+" ");
      }
    }

    public static int[] insertSort(int[] b){
      for(int i=0;i<b.length;i++){
      int currentValue = b[i];
      int position = i;
        for(int j=i-1;j>=0;j--){
        if(b[j]>currentValue){
          b[j+1]=b[j];
          position-=1;
        }else{
          break;
        }
       }
        b[position]=currentValue;
       }
    return b;
    }
    }

  • 相关阅读:
    Android4.2以及最新SDK的尝鲜使用
    UVA 1524
    StringTokenizer类的使用
    Tuxedo入门学习
    ReviewBoard安装和配置札记
    一步一步写算法(之单向链表)
    腾讯2014年实习生招聘笔试面试经历
    二路单调自增子序列模型【acdream 1216】
    [置顶] c# 验证码生成
    Android Service 服务(一)—— Service
  • 原文地址:https://www.cnblogs.com/kimyong/p/5898624.html
Copyright © 2011-2022 走看看