由于上篇---八大排序法,进而联系起二分法排序,所以在这里补充一个比较经典的排序法---二分法排序;
逻辑相对简单,所以直接上代码
package com.sinolife.mtrs.apply.controller;
import java.util.Arrays;
/**
* @author delin Li
* @version createTime:2017-12-7下午04:10:37
* @Description
*/
public class TestSort {
/**
* @param args
*/
public static void main(String[] args) {
int[] ins = {1,3,53,5,7,81,2,5,71,9};
binarySort(ins);//二分法排序
print(ins);
}
public static void print(int[] data) {
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
}
public static void binarySort(int[] arr){
for(int i = 1;i<arr.length;i++){
int temp = arr[i];
int low = 0;
int top = i-1;
int mid;
while(low<=top){// 定位
mid = (top+low)/2;
if(arr[mid]>temp){
top = mid-1;
}else{
low = mid+1;
}
}
for(int j=i;j>low;j--){// 移动数组
arr[j]= arr[j-1];
}
arr[low] = temp;// 在找到的位置插入
}
}
}
如有错误,希望朋友们能指出来。