zoukankan      html  css  js  c++  java
  • 两种插入排序算法java实现

    两种方法都编译运行通过,可以当做排序类直接使用。

    折半插入排序:

    public class Sort1 {
        public static void main(String[] args) {
            InsertSort sort = new InsertSort();
            sort.InsertSort();
            int[] arr = sort.getarr();
            System.out.println();
            System.out.println("排序之后:");
            for (int ar : arr) {
                System.out.print(ar + " ");
            }
    
        }
    }
    
    class InsertSort {
        int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1 };
        int i,high,low,mid;
        int temp;
      
        public int[] getarr() {
            return a;
        }
    
        public void InsertSort() {
            System.out.println("排序之前:");
            for (int m : a) {
                System.out.print(m + " ");
            }
            for(int i=1;i<a.length;i++)
            {
                temp=a[i];
                low = 0;
                high = i-1;
                while(low<=high)
                {
                    mid = (low + high)/2;
                    if (temp<a[mid])
                    {
                        high = mid -1;
                    }
                    else
                    {
                        low = mid +1;
                    }
                }
                for(int j=i-1;j>=high+1;j--)
                {
                    a[j+1] = a[j];
                }
                   a[high+1] = temp;
            }
        }
    }

    直接插入排序:

    public class Sort1 {
        public static void main(String[] args) {
            InsertSort sort = new InsertSort();
            sort.InsertSort();
            int[] arr = sort.getarr();
            System.out.println();
            System.out.println("排序之后:");
            for (int ar : arr) {
                System.out.print(ar + " ");
            }
    
        }
    }
    
    class InsertSort {
        int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1 };
    
        public int[] getarr() {
            return a;
        }
    
        public void InsertSort() {
            System.out.println("排序之前:");
            for (int m : a) {
                System.out.print(m + " ");
            }
            for (int i = 1; i < a.length; i++) {
                int temp = a[i];
                int j;
                for (j = i - 1; j >= 0 && a[j] > temp; j--) {
                    a[j + 1] = a[j];
                }
                a[j + 1] = temp;
            }
        }
    }
  • 相关阅读:
    mtu
    OC2_使用系统协议
    OC1_协议语句
    Json文件/网址解析
    文件归档
    Plist文件
    NS-Date/NSDateFormatter
    OC10_文件练习
    OC9_文件操作
    OC8_NSData
  • 原文地址:https://www.cnblogs.com/2206411193qzb/p/7455652.html
Copyright © 2011-2022 走看看