package com.company; import java.util.*; import static com.company.Array.printArray; /** * Created by Administrator on 2017/5/2. */ public class BinarySort { public static void main (String []args){ int []array={1,2,9,3}; printArray(array); BinInsertSort(array); System.out.println("\n"); printArray(array); } public static void BinInsertSort(int a[]) { int key, left, right, middle; for (int i=1; i<a.length; i++) { key = a[i]; //key为要排的目的值。其前面为已经排好的数组 left = 0; right = i-1; while (left<=right) { middle = (left+right)/2; if (a[middle]>key) right = middle-1; //比较中值与要排的值大小。更新数组下标left与right的值 // 进而缩短要插入的数组长度 else left = middle+1; } for(int j=i-1; j>=left; j--) { a[j+1] = a[j]; //输出排序后的数组。此时小于更新后的下标left值的数组值都要改变 } a[left] = key; } } } class Array{ public static void printArray(int[]array){ for(int i=0;i<array.length;i++){ //数组的输出,频繁调用 System.out.print(array[i]+" "); } } }
二分法插入排序的java简单实现
最新推荐文章于 2021-06-29 20:42:54 发布