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

    package com;
    
    public class Paixu {
        static boolean flag=true;
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int[] a = random(50000);
            long l1 = System.currentTimeMillis();
            insertion_Sort(a);
            long l2 = System.currentTimeMillis();
            System.out.println("插入排序用时:"+(l2-l1));
            check(a);
        }
        // 插入排序
        private static int[] insertion_Sort(int[] a){
    
        /* for (int i = 1; i < a.length; i++) {
                int temp = a[i];
                for (int j = i-1; j >= 0; j--) {
                    if (a[j] > temp) {
                        a[j+1] = a[j];
                        if (j==0) {
                            a[0]=temp;
                        }
                    }else {
                        a[j+1] = temp;
                        break;
                    }
                }
            }*/
                
            // 优化插入排序算法
            for(int i=1;i<a.length;i++){
                int temp=a[i];
                int j;
                for(j=i-1;j>=0;j--) {
                    if(a[j]>temp) {
                        a[j+1]=a[j];
                    }else {
                        break;
                    }
                }
                a[j+1]=temp;
            }
            
    /*        int i,j;
            int n=a.length;
            for (i=1;i<n;i++)
            {
                j = i;
                int target = a[i];
                while (j>0 && target<a[j-1])
                {
                    a[j] = a[j-1];
                    j--;
                }
                a[j] = target;
            }*/
            System.out.println("***********************");
            return a;
        }
        public static int[] random(int num) {
            long start = System.currentTimeMillis();
            int[] a ;
            a = new int[num];
            for (int i = 0; i < num; i++) {
                int rand = (int) Math.round(Math.random()*num*100);
                a[i] = rand;
            }
            long end =System.currentTimeMillis();
            System.out.println("产生"+num+"个随机数花费时间=====>"+(end-start)+"毫秒");
            return a;
        }
        private static boolean check (int[] a) {
            for (int i = 0; i < a.length-1; i++) {
                if (a[i+1] < a[i]) {
                    flag = false;
                }
            }
            System.out.println(flag);
            return flag;
        }
    }
  • 相关阅读:
    css基础属性
    选择器的类型
    css的三种表现形式
    表单和表格
    如何比较两个xml 的异同
    xslt 简单的语法
    xslt 和一个demo
    event based xml parser (SAX) demo
    SAX vs. DOM (Event vs. Tree)
    xmlns 实例分析
  • 原文地址:https://www.cnblogs.com/zhengwenqiang/p/7526946.html
Copyright © 2011-2022 走看看