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簡單實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.