二分法排序
由于上篇---八大排序法,进而联系起二分法排序,所以在这里补充一个比较经典的排序法---二分法排序;
逻辑相对简单,所以直接上代码
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;// 在找到的位置插入 } } }
如有错误,希望朋友们能指出来。